C语言实现二叉树前序遍历(递归)
C语言实现二叉树前序遍历(递归)
本文将使用C语言递归方式实现二叉树的前序遍历,并输出节点值。
代码实现
#include <stdio.h>
#include <stdlib.h>
// 定义二叉树结构体
typedef struct TreeNode {
char data; // 节点数据
struct TreeNode *left, *right; // 左右子树指针
} TreeNode, *pTreeNode;
// 创建二叉树
pTreeNode createTree() {
char c;
pTreeNode root = NULL;
scanf('%c', &c);
if (c == '#') {
root = NULL;
} else {
root = (pTreeNode)malloc(sizeof(TreeNode));
root->data = c;
root->left = createTree();
root->right = createTree();
} return root;
}
// 前序遍历并输出节点值
void preOrder(pTreeNode root) {
if (root == NULL) {
return;
}
printf('%c ', root->data);
preOrder(root->left);
preOrder(root->right);
}
int main() {
printf("请输入二叉树的前序遍历顺序表示:");
pTreeNode root = createTree();
printf("前序遍历结果为:");
preOrder(root);
printf("\n");
return 0;
}
代码解释
- 结构体定义: 定义一个名为
TreeNode的结构体,包含data字段存储节点数据,left和right字段分别指向左子树和右子树。 - 创建二叉树:
createTree()函数用于创建二叉树,通过输入字符进行构建,‘#’ 表示空节点。 - 前序遍历函数:
preOrder()函数使用递归方式实现前序遍历,首先输出根节点数据,然后递归遍历左子树,最后递归遍历右子树。 - 主函数: 主函数用于接收输入,创建二叉树,并调用
preOrder()函数输出前序遍历结果。
示例
输入:AB#D##C##
输出:A B D C
总结
本文详细讲解了使用C语言递归方式实现二叉树的前序遍历的代码实现、代码解释和示例,帮助读者理解二叉树遍历的基本原理和方法。
原文地址: https://www.cveoy.top/t/topic/jzqi 著作权归作者所有。请勿转载和采集!