二叉树的先序中序后序
时间: 2023-08-14 12:14:14 浏览: 102
二叉树的几种操作,包括递归先序建立二叉树、先序遍历、中序遍历、后序遍历、非递归的各种遍历
二叉树的先序遍历、中序遍历和后序遍历是常见的树遍历方式。
先序遍历(Preorder Traversal):根节点 -> 左子树 -> 右子树
中序遍历(Inorder Traversal):左子树 -> 根节点 -> 右子树
后序遍历(Postorder Traversal):左子树 -> 右子树 -> 根节点
这些遍历方式都是递归定义的,以下是它们的实现示例(假设二叉树的节点类为TreeNode):
先序遍历的实现示例:
```
void preOrder(TreeNode* root) {
if (root == nullptr) {
return;
}
cout << root->val << " "; // 先访问根节点
preOrder(root->left); // 再遍历左子树
preOrder(root->right); // 最后遍历右子树
}
```
中序遍历的实现示例:
```
void inOrder(TreeNode* root) {
if (root == nullptr) {
return;
}
inOrder(root->left); // 先遍历左子树
cout << root->val << " "; // 再访问根节点
inOrder(root->right); // 最后遍历右子树
}
```
后序遍历的实现示例:
```
void postOrder(TreeNode* root) {
if (root == nullptr) {
return;
}
postOrder(root->left); // 先遍历左子树
postOrder(root->right); // 再遍历右子树
cout << root->val << " "; // 最后访问根节点
}
```
希望这可以帮助你理解二叉树的先序、中序和后序遍历。如果你还有其他问题,请随时提出。
阅读全文