📄 rebuild.cpp
字号:
#include"rebuild.h"
Bintree* CreateTree(int *pre,int *in,int n,int* flag)
{
Bintree *ptr;
int *pos;
int k;
if(n<=0)
return NULL;
ptr=(Bintree *)malloc(sizeof(Bintree));
if (!ptr) exit(OUT_OF_MEM);
ptr->data=*pre;
for(pos=in;pos<in+n;pos++)
{
if(*pos==*pre)
break;
}
if(pos==in+n)
{
*flag=0;
return(NULL);
}
k=pos-in;
ptr->lchild=CreateTree(pre+1,in,k,flag);
if(*flag==0)
return(NULL);
ptr->rchild=CreateTree(pre+k+1,pos+1,n-1-k,flag);
if(*flag==0)
return(NULL);
return(ptr);
}
void PostorderTraversal(Bintree* b)
{
if (b!=NULL)
{
PostorderTraversal(b->lchild); //左子树
PostorderTraversal(b->rchild); //右子树
printf("%d ",b->data);//根结点
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -