c++二叉树的先中后序遍历
时间: 2023-12-06 21:59:11 浏览: 71
二叉树遍历问题-C++实现前中后序及层次遍历
二叉树的遍历方式有三种,分别是先序遍历、中序遍历和后序遍历。
先序遍历的顺序是:根节点 -> 左子树 -> 右子树。
中序遍历的顺序是:左子树 -> 根节点 -> 右子树。
后序遍历的顺序是:左子树 -> 右子树 -> 根节点。
下面是C++实现二叉树的先序遍历、中序遍历和后序遍历:
```cpp
#include<iostream>
using namespace std;
struct TreeNode{
int val;
struct TreeNode *left;
struct TreeNode *right;
TreeNode(int x):val(x),left(NULL),right(NULL){}
};
//先序遍历
void preOrder(TreeNode *root){
if(root == NULL) return;
cout<<root->val<<" ";
preOrder(root->left);
preOrder(root->right);
}
//中序遍历
void inOrder(TreeNode *root){
if(root == NULL) return;
inOrder(root->left);
cout<<root->val<<" ";
inOrder(root->right);
}
//后序遍历
void postOrder(TreeNode *root){
if(root == NULL) return;
postOrder(root->left);
postOrder(root->right);
cout<<root->val<<" ";
}
int main(){
//创建二叉树
TreeNode *root = new TreeNode(1);
root->left = new TreeNode(2);
root->right = new TreeNode(3);
root->left->left = new TreeNode(4);
root->left->right = new TreeNode(5);
//先序遍历
cout<<"preOrder: ";
preOrder(root);
cout<<endl;
//中序遍历
cout<<"inOrder: ";
inOrder(root);
cout<<endl;
//后序遍历
cout<<"postOrder: ";
postOrder(root);
cout<<endl;
return 0;
}
```
阅读全文