/*这是一个在字符环境中,用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