1. 程式人生 > >已知前序中序重建二叉樹(未完)

已知前序中序重建二叉樹(未完)

#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);	
}