已知前序中序重建二叉樹(未完)
阿新 • • 發佈:2018-12-15
#include<iostream> #include<malloc.h> using namespace std; struct node{ struct node *right,*left; int e; }; const int maxn=30; int pre[maxn],in[maxn]; void create(node T,int prel,int prer,int inl,int inr){ T=(node)malloc (sizeof(node)); int root=inl; T->e=pre[prel]; T->left=NULL;T->right=NULL; while(in[root]!=pre[prel]) root++; create(T->left,prel+1,prer,inl,root-1); create(T->right,prel+1,prer,root+1,inr); } int main(){ int n; cout<<"輸入結點的個數"; cin>>n; cout<<"輸入前序結點,結點為整數,以空格間隔"; for(int i=0;i<n;i++) cin>>pre[i]; cout<<"輸入前序結點,結點為整數,以空格間隔"; for(int i=0;i<n;i++) cin>>in[i]; node T; create(T,0,n,0,n); }