利用二叉链表,生成如下图所示的二叉树,并输出它的前序、中序,后序序列以及树的深度。
兄弟,我实在懒得打代码了,这个是从《数据结构与算法分析》里截出来的二叉查找树的代码,希望对你有用
#include
int p[100][2]={0};
void pre(int r)
{
printf("%d ",r);
if(p[r][0]>0)pre(p[r][0]);
if(p[r][1]>0)pre(p[r][1]);
}
void mid(int r)
{
if(p[r][0]>0)mid(p[r][0]);
printf("%d ",r);
if(p[r][1]>0)mid(p[r][1]);
}
void suf(int r)
{
if(p[r][0]>0)suf(p[r][0]);
if(p[r][1]>0)suf(p[r][1]);
printf("%d ",r);
}
int main()
{
p[37][0]=21;
p[37][1]=51;
p[21][0]=6;
p[21][1]=32;
p[32][0]=23;
p[32][1]=33;
p[51][1]=86;
p[86][0]=60;
p[60][1]=65;
pre(37);
puts("");
mid(37);
puts("");
suf(37);
puts("");
return 0;
}