c语言实现二叉树的代码解读.doc

  1. 1、本文档共10页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
c语言实现二叉树的代码解读

1,2两问的程序代码如下: #include?stdio.h? #includemalloc.h? ? typedef?struct?BiTNode? {? ? char?data;? ? struct?BiTNode?*lchild,*rchild;? ? }BiTNode,*BiTree;? ? BiTree?Create(BiTree?T)? {? ? char?ch;? ? ch=getchar();? ? if(ch==#)? ? T=NULL;? ? else? {? ? T=(BiTNode?)malloc(sizeof(BiTNode));? T-data=ch;?T-lchild=Create(T-lchild);?? T-rchild=Create(T-rchild);? ? }? ? return燭;?d ? }? ? int爊ode(BiTree燭)?(T {?i? int爏um1=0,a,b;?燭 ? if(T)? ? {? ? ? if(T!=NULL) sum1++;? ? ? a=node(T-lchild);? ? ? ? ? ? ? ? ? ? sum1+=a;? ? ? ? ? ? ? ? ? ? b=node(T-rchild);? ? ? ? ? ? ? ? ? ? sum1+=b;? ? ? }? ? return爏um1;? ? }? int爉node(BiTree燭)?{? ? ? int爏um2=0,e,f;?) ? if(T)? ? {? ? if((T-lchild!=NULL)(T-rchild!=NULL))? ? ? sum2++;? ? e=mnode(T-lchild);? ? ? ? ? ? sum2+=e;? ? ? ? ? ? f=mnode(T-rchild);? ? ? ? ? ? sum2+=f;? ? ? }? ? ? ? ? return爏um2;?c }?void燩reorder(BiTree燭)?{?-rch? if(T)? {?i? printf(%c,T-data);? ? Preorder(T-lchild);? ? Preorder(T-rchild);? ? }? ? }? int燬umleaf(BiTree燭)?{???{?? int爏um=0,m,n;?e ? if(T)? {?i? if((!T-lchild)(!T-rchild))? ? sum++;? ? m=Sumleaf(T-lchild);? ? sum+=m;? ? n=Sumleaf(T-rchild);? ? sum+=n;? ? }? ? return爏um;( }? ? void爖hongxu(BiTree燭)?;? {?v? if(T)? {?i? zhongxu(T-lchild);? ? printf(%c,T-data);? ? zhongxu(T-rchild);? ? }? ? }? ? void?houxu(BiTree?T)? {? ? if(T)? {? ? houxu(T-lchild);? ? houxu(T-rchild);? ? printf(%c,T-data);? ? }? }? ? main()? {? ? BiTree?T;? ? int?sum,sum1,sum3;? printf( 请输入字符串: \n);? ? T=Create(T);? printf( 前序遍历 :\n);? Preorder(T);? printf(\n);? ? printf( 中序遍历 :\n);? zhongxu(T);? printf(\n);? ? ? printf( 后序遍历 :\n);? ? houxu(T);? ? printf(\n);? ? sum=Sumleaf(T);? printf( 树叶数为 :\n);? ? printf(%d,sum);? printf(\n);? printf( 树结点数为 :\n);? ? sum1=node(T);? printf(\n);? printf(%d,sum1);? printf(\n);? printf( 树满结点数为 :\n); sum3=mnode(T);? printf(%d,sum3);? printf(\n);? } 3,4两问的程序代码如下: #includestdio.h J K #include malloc.h #define NULL 0 #define MAX 100 /*定义二叉树*/ typedef struct bitnode { char data;

文档评论(0)

shuwkb + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档