已知某二叉树前序遍历序列为 ABDFECGHI 中序遍历序列为 DBEFAGHCI 确定该二叉树结构并画出该二叉树。
时间: 2024-06-21 12:03:18 浏览: 213
已知某二叉树前序遍历序列为 ABDFECGHI,中序遍历序列为 DBEFAGHCI。该二叉树的结构如下所示:
```
A
/ \
B C
/ \ \
D E G
/ / \
F H I
```
建树的C++代码实现如下所示:[^1]
```c++
#include<iostream>
#include<cstring>
using namespace std;
struct node{
char data;
node* l;
node* r;
};
node* build(char* pre,char* in,int len){
node* root(new node);
memset(root,0,sizeof(node));
if(len==0) return nullptr;
root->data=*pre;
int pos=find(in,in+len,*pre)-in;//查找根节点在中序遍历中的位置
root->l=build(pre+1,in,pos);//递归构建左子树
root->r=build(pre+1+pos,in+pos+1,len-pos-1);//递归构建右子树
return root;
}
void postorder(node* root){//后序遍历打印
if(root==nullptr) return;
postorder(root->l);
postorder(root->r);
cout<<root->data;
}
int main(){
char pre[]="ABDFECGHI";
char in[]="DBEFAGHCI";
node* root=build(pre,in,strlen(pre));
postorder(root);
return 0;
}
```
阅读全文