二叉树遍历前序中序后序c
时间: 2024-06-07 13:03:57 浏览: 137
二叉树的前序中序后序遍历
二叉树的遍历是计算机科学中对二叉树节点进行访问的一种方法,主要有三种基本方式:前序遍历、中序遍历和后序遍历。每种遍历顺序都有其特定的节点访问顺序:
1. **前序遍历(Preorder Traversal)**:
- 遍历顺序是:根节点 -> 左子树 -> 右子树
- C语言代码示例:
```c
void preorderTraversal(TreeNode* root) {
if (root != NULL) {
printf("%d ", root->val); // 先访问根节点
preorderTraversal(root->left); // 再遍历左子树
preorderTraversal(root->right); // 最后遍历右子树
}
}
```
2. **中序遍历(Inorder Traversal)**:
- 遍历顺序是:左子树 -> 根节点 -> 右子树
- C语言代码示例:
```c
void inorderTraversal(TreeNode* root) {
if (root != NULL) {
inorderTraversal(root->left); // 先遍历左子树
printf("%d ", root->val); // 再访问根节点
inorderTraversal(root->right); // 最后遍历右子树
}
}
```
3. **后序遍历(Postorder Traversal)**:
- 遍历顺序是:左子树 -> 右子树 -> 根节点
- C语言代码示例:
```c
void postorderTraversal(TreeNode* root) {
if (root != NULL) {
postorderTraversal(root->left); // 先遍历左子树
postorderTraversal(root->right); // 再遍历右子树
printf("%d ", root->val); // 最后访问根节点
}
}
```
在这些函数中,`TreeNode`是一个假设的结构体或类,表示二叉树的节点,包含一个整数值`val`和指向左右子节点的指针。
**相关问题--:**
1. 前序遍历的应用场景是什么?
2. 中序遍历常用于什么情况?
3. 后序遍历有何特点?
阅读全文