用C++实现用先序遍历的顺序输入一颗二叉树到电脑中,然后对该二叉树进行中序遍历和后序遍历,然后输出
时间: 2024-02-01 15:14:21 浏览: 102
二叉树的基本运算
以下是用C++实现二叉树的先序、中序、后序遍历的代码:
```c++
#include<iostream>
using namespace std;
//定义二叉树结构体
struct TreeNode{
char val;
TreeNode* left;
TreeNode* right;
TreeNode(char c):val(c),left(NULL),right(NULL){}
};
//先序遍历二叉树并构建二叉树
void preOrder(TreeNode* &root){
char c;
cin>>c;
if(c=='#') return;
root=new TreeNode(c);
preOrder(root->left);
preOrder(root->right);
}
//中序遍历二叉树
void inOrder(TreeNode* root){
if(!root) return;
inOrder(root->left);
cout<<root->val<<" ";
inOrder(root->right);
}
//后序遍历二叉树
void postOrder(TreeNode* root){
if(!root) return;
postOrder(root->left);
postOrder(root->right);
cout<<root->val<<" ";
}
int main(){
TreeNode* root=NULL;
cout<<"请输入二叉树的先序遍历序列(#表示空节点):";
preOrder(root);
cout<<"中序遍历序列为:";
inOrder(root);
cout<<endl;
cout<<"后序遍历序列为:";
postOrder(root);
cout<<endl;
return 0;
}
```
输入格式示例:
```
请输入二叉树的先序遍历序列(#表示空节点):AB#CD###EF#G##
```
输出格式示例:
```
中序遍历序列为:B D C A F E G
后序遍历序列为:D C B F G E A
```
阅读全文