用c语言编程,采用二叉树递归遍历算法编程实现二叉树遍历(采用先序、中序和后序三遍历算法)
时间: 2024-10-25 09:15:23 浏览: 31
在 C 语言中,二叉树是一种常用的数据结构,其递归遍历包括先序遍历(根节点 -> 左子树 -> 右子树)、中序遍历(左子树 -> 根节点 -> 右子树)和后序遍历(左子树 -> 右子树 -> 根节点)。以下是递归版本的代码实现:
```c
// 定义二叉树结点
typedef struct TreeNode {
int val;
struct TreeNode *left;
struct TreeNode *right;
} TreeNode;
// 先序遍历函数 (根->左->右)
void preorderTraversal(TreeNode* root) {
if (root != NULL) {
printf("%d ", root->val); // 访问根节点
preorderTraversal(root->left); // 递归遍历左子树
preorderTraversal(root->right); // 递归遍历右子树
}
}
// 中序遍历函数 (左->根->右)
void inorderTraversal(TreeNode* root) {
if (root != NULL) {
inorderTraversal(root->left); // 递归遍历左子树
printf("%d ", root->val); // 访问根节点
inorderTraversal(root->right); // 递归遍历右子树
}
}
// 后序遍历函数 (左->右->根)
void postorderTraversal(TreeNode* root) {
if (root != NULL) {
postorderTraversal(root->left); // 递归遍历左子树
postorderTraversal(root->right); // 递归遍历右子树
printf("%d ", root->val); // 访问根节点
}
}
```
阅读全文