编写二叉树的先序创建,先序遍历,中序遍历,后序遍历
时间: 2024-12-14 09:20:48 浏览: 4
Python实现输入二叉树的先序和中序遍历,再输出后序遍历操作示例
5星 · 资源好评率100%
编写二叉树的遍历主要有三种方法:先序遍历、中序遍历和后序遍历。
1. **先序遍历(Preorder Traversal)**:
先访问根节点,然后递归地遍历左子树,最后遍历右子树。步骤如下:
- 访问当前节点(root)
- 对左子树进行先序遍历
- 对右子树进行先序遍历
2. **中序遍历(Inorder Traversal)**:
首先遍历左子树,接着访问根节点,最后遍历右子树。步骤如下:
- 对左子树进行中序遍历
- 访问当前节点(root)
- 对右子树进行中序遍历
3. **后序遍历(Postorder Traversal)**:
首先遍历左子树,然后遍历右子树,最后访问根节点。步骤如下:
- 对左子树进行后序遍历
- 对右子树进行后序遍历
- 访问当前节点(root)
以下是这三种遍历的伪代码示例:
```plaintext
// 定义二叉树节点结构
struct TreeNode {
int val;
TreeNode* left;
TreeNode* right;
};
// 先序遍历函数
void preorderTraversal(TreeNode* root) {
if (root != nullptr) {
// 先访问根
cout << root->val << " ";
// 再遍历左子树
preorderTraversal(root->left);
// 最后遍历右子树
preorderTraversal(root->right);
}
}
// 中序遍历函数
void inorderTraversal(TreeNode* root) {
if (root != nullptr) {
// 先遍历左子树
inorderTraversal(root->left);
// 再访问根
cout << root->val << " ";
// 最后遍历右子树
inorderTraversal(root->right);
}
}
// 后序遍历函数
void postorderTraversal(TreeNode* root) {
if (root != nullptr) {
// 先遍历左子树
postorderTraversal(root->left);
// 再遍历右子树
postorderTraversal(root->right);
// 最后访问根
cout << root->val << " ";
}
}
```
阅读全文