/*这是一个在字符环境中,用ASCII码打印二叉树形状的算法。
采用层次遍法。
算法拙劣,仅供初学者做练习,(本人也是初学者,自学数据结构,刚好学到这二叉树这一章,搞几个二叉的例题,却不知道其构造形状,想调用图形API做个美观点的,却有点偏离本章的学习目的,只好用字符打印,
linux环境中打印的还可以,DOS屏幕如果不够宽您输出到文本,如果您有更好的算法一定不吝赐教。我的QQ:137241638 mail:hnflcp@139.com*/
void PBTNodePrint(PBTNode *pb[],int n,int h)
{
int l=-1,
r=0,
i,j,k,
end;
char c;
PBTNode *p;
if(n<=0||hlevel==1)
{
for(i=0;ispace;i++)
printf(" ");
printf("%c",pb[0]->data);
printf("\n");
return;
}
h=h-pb[0]->level+2;
for(k=0;kparent->space;
for(;jlrflag==0)?'/':'\\';
printf("%c",c);
}
printf("\n");
}
for(i=0;ilrflag==0)
p->space=p->parent->space+l;
else
p->space=p->parent->space+r;
}
for(i=0,j=0;idata);
}
printf("\n");
}
//循环打印所有层的数据
1