二叉树程序设计c语言源代码打印.docx
- 文档编号:13228635
- 上传时间:2023-06-12
- 格式:DOCX
- 页数:9
- 大小:14.99KB
二叉树程序设计c语言源代码打印.docx
《二叉树程序设计c语言源代码打印.docx》由会员分享,可在线阅读,更多相关《二叉树程序设计c语言源代码打印.docx(9页珍藏版)》请在冰点文库上搜索。
二叉树程序设计c语言源代码打印
二叉树程序设计_c语言源代码(打印)
#include
#include
typedefstructBiTNode{
chardata;
structBiTNode*lchild,*rchild;
}BiTNode,*BiTree;
BiTreeCreate(BiTreeT){
charch;
ch=getchar();
if(ch=='#')
T=NULL;
else
{
if(!
(T=(BiTNode*)malloc(sizeof(BiTNode))))
printf("Error!
");
T->data=ch;
T->lchild=Create(T->lchild);
T->rchild=Create(T->rchild);
}
returnT;
}
voidxianxu(BiTreeT){
if(T)
{
printf("%c",T->data);
xianxu(T->lchild);
xianxu(T->rchild);
}
}
voidzhongxu(BiTreeT){
if(T)
{
zhongxu(T->lchild);
printf("%c",T->data);
zhongxu(T->rchild);
}
}
voidhouxu(BiTreeT){
if(T)
{
houxu(T->lchild);
houxu(T->rchild);
printf("%c",T->data);
}
}
intSumleaf(BiTreeT){
intsum=0,m,n;
if(T){
if((!
T->lchild)&&(!
T->rchild))
sum++;
m=Sumleaf(T->lchild);
sum+=m;
n=Sumleaf(T->rchild);
sum+=n;
}
returnsum;
}
intDepth(BiTreeT)
{
intdep=0,depl,depr;
if(!
T)dep=0;
else{
depl=Depth(T->lchild);
depr=Depth(T->rchild);
dep=1+(depl>depr?
depl:
depr);
}
returndep;
}
voidPaint(BiTreeT,intx,inty,intg)
{
charc[2];
intyou=0,zuo=0;
if(T)
{
setcolor(WHITE);
circle(x,y,10);
c[0]=T->data;
c[1]='\0';
outtextxy(x,y,c);
if(T->lchild!
=NULL)
{
if(x>g)zuo=(x-g)/2+g;
if(x line(x-1,y,zuo,y+40); } if(T->rchild! =NULL) { you=2*x-zuo; line(x-1,y,you,y+40); } Paint(T->lchild,zuo,y+40,x); Paint(T->rchild,you,y+40,x); } } voidmenudisplay() { printf("**************************************MENU****************************** ********\n"); printf("1.JianLi2.DaYin3.XXu4.ZXu5.HXu6.SDu7.YZShu8.Menu9.XHui 0.Quit\n"); printf("**************************************MENU****************************** ********\n"); } voiddestroytree(BiTreeT){ if(T==NULL)return; elseif(T->lchild==NULL&&T->rchild==NULL) { free(T); return; } else{ destroytree(T->lchild); destroytree(T->rchild); free(T); return; } } voidmain() { BiTreeT; charc; intflag=0; intx,y,g,sum,dep; intgdriver,gmode; x=240;y=20;g=0; gdriver=DETECT; menudisplay(); c=getchar(); fflush(stdin); while(c! ='0') { switch(c) { case'1': printf("Xianxushuruerchashudezhi! \n"); printf("#Biaoshikong! ! ! \n"); T=Create(T); flag=1; printf("OK\n"); c=getchar(); break; case'2': if(flag==0) printf("ShuWu.\n"); else { initgraph(&gdrsetbkcolor(BLUE); cleardevice(); Paint(T,x,y,g); getch(); closegraph(); } c=getchar(); break; case'3': if(flag==0) printf("ShuWu.\n"); else { xianxu(T); printf("\n"); } c=getchar(); break; case'4': if(flag==0) printf("ShuWu.\n"); else { zhongxu(T); printf("\n"); } c=getchar(); break; case'5': if(flag==0) printf("ShuWu.\n"); else { houxu(T); printf("\n"); } c=getchar(); break; case'6': if(flag==0) printf("ShuWu.\n"); else { dep=Depth(T); printf("%d",dep); printf("\n"); } c=getchar(); break; case'7': if(flag==0) printf("ShuWu.\n"); else { sum=Sumleaf(T); printf("%d",sum); printf("\n"); } c=getchar(); break; case'8': menudisplay(); c=getchar(); break; case'9': if(flag==0) printf("ShuWu.\n"); else { destroytree(&T); flag=0; printf("Xiaohuichenggong! \n"); } c=getchar(); break; default: printf("InputWrong! \n"); } c=getchar(); } }
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 二叉 程序设计 语言 源代码 打印