c语言代码的二叉树遍历
时间: 2024-11-13 11:23:34 浏览: 3
【C语言二叉树遍历实例】C语言二叉树遍历实例
C语言中,二叉树的遍历主要有三种基本方法:前序遍历(根-左-右)、中序遍历(左-根-右)和后序遍历(左-右-根)。以下是每种遍历方法的简单代码实现:
1. **前序遍历(递归)**:
```c
void preorderTraversal(struct TreeNode* root) {
if (root != NULL) {
printf("%d ", root->val); // 先访问根节点
preorderTraversal(root->left); // 再遍历左子树
preorderTraversal(root->right); // 最后遍历右子树
}
}
```
2. **中序遍历(递归)**:
```c
void inorderTraversal(struct TreeNode* root) {
if (root != NULL) {
inorderTraversal(root->left); // 首先遍历左子树
printf("%d ", root->val); // 然后访问根节点
inorderTraversal(root->right); // 最后遍历右子树
}
}
```
3. **后序遍历(递归)**:
```c
void postorderTraversal(struct TreeNode* root) {
if (root != NULL) {
postorderTraversal(root->left);
postorderTraversal(root->right);
printf("%d ", root->val); // 最后访问根节点
}
}
```
这里`struct TreeNode`是你自定义的二叉树节点结构体,包含`val`存储节点值,`left`和`right`分别指向左、右子节点。
阅读全文