二叉树的遍历c语言
时间: 2024-11-20 22:27:04 浏览: 68
二叉树的遍历是指按照特定顺序访问二叉树的所有节点。主要有三种基本遍历方式:
1. **前序遍历(Preorder Traversal)**:根节点 -> 左子树 -> 右子树。即先访问根节点,然后递归地访问左子树,最后访问右子树。
C语言代码示例:
```c
void preorder(struct TreeNode* node) {
if (node != NULL) {
printf("%d ", node->val); // 访问节点
preorder(node->left); // 左子树
preorder(node->right); // 右子树
}
}
```
2. **中序遍历(Inorder Traversal)**:左子树 -> 根节点 -> 右子树。对于每个节点,首先遍历其左子树,然后访问节点,最后遍历右子树。
```c
void inorder(struct TreeNode* node) {
if (node != NULL) {
inorder(node->left);
printf("%d ", node->val);
inorder(node->right);
}
}
```
3. **后序遍历(Postorder Traversal)**:左子树 -> 右子树 -> 根节点。先访问左子树和右子树,最后访问根节点。
```c
void postorder(struct TreeNode* node) {
if (node != NULL) {
postorder(node->left);
postorder(node->right);
printf("%d ", node->val);
}
}
```
阅读全文