求二叉树的深度叶子结点数总结点数(免费).doc_第1页
求二叉树的深度叶子结点数总结点数(免费).doc_第2页
求二叉树的深度叶子结点数总结点数(免费).doc_第3页
求二叉树的深度叶子结点数总结点数(免费).doc_第4页
免费预览已结束,剩余1页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

#includemalloc.h#define NULL 0#includestdio.htypedef struct nodechar data;struct node *lchild,*rchild;NODE;int count;NODE *crt_bt_pre()/*二叉树先序创建算法*/NODE * bt;char ch;printf(nttt);scanf(%c,&ch);getchar();if(ch= ) bt=NULL; else bt=(NODE*)malloc(sizeof(NODE); bt-data=ch; printf(nttt请输入%c结点的左孩子:,bt-data); bt-lchild=crt_bt_pre(); printf(nttt请输入%c结点的右孩子:,bt-data); bt-rchild=crt_bt_pre(); return(bt);void Preorder(NODE* bt)/*二叉树先序递归遍历算法*/if(bt!=NULL)printf(nttt %c,bt-data); Preorder(bt-lchild);Preorder(bt-rchild);void Inorder(NODE* bt)if(bt!=NULL)Inorder(bt-lchild);printf(nttt %c,bt-data);Inorder(bt-rchild);void Postorder(NODE* bt)if(bt!=NULL)Postorder(bt-lchild);Postorder(bt-rchild);printf(nttt %c,bt-data);int CountLeaf(NODE *bt)/*求二叉树叶子结点数的递归遍历算法*/if(bt=NULL)return 0;if(bt-lchild=NULL&bt-rchild=NULL)count+;CountLeaf(bt-lchild);CountLeaf(bt-rchild);return(count);int CountNode (NODE* bt)/*求二叉树结点数的递归遍历算法*/if(bt=NULL) return 0;elsecount+;CountNode(bt-lchild);CountNode(bt-rchild);return(count);int TreeDepth(NODE* bt)/*求二叉树深度的递归遍历算法*/int x,y;if(bt=NULL) return 0;elsex=TreeDepth(bt-lchild); y=TreeDepth(bt-rchild);if(xy)return(x+1);elsereturn(y+1);void main()NODE *bt;char choice;int j=1;int x;while(j)printf(nnn);printf(ttt-二叉树的基本运算-n);printf(nttt*);printf(nttt* 1-建二 差树 *);printf(nttt* 2-先序 遍历 *); printf(nttt* 3-中序 遍历 *);printf(nttt* 4-后序 遍历 *);printf(nttt* 5-统计 叶子数 *);printf(nttt* 6-统计 结点数 *);printf(nttt* 7-求二叉树深度 *);printf(nttt* 0-退 出 *);printf(nttt*);printf(ttt请选择菜单号(0-7):);scanf(%c,&choice);getchar();if(choice=1) printf(nttt请输入按先序建立二叉树的结点序列: ); printf(nttt说明: 逐个输入,输入空格代表后续结点为空,按回车输入下一个结点.); printf(nttt请输入根结点: ); bt=crt_bt_pre(); printf(nttt二叉树成功建立!n);else if(choice=2)printf(nttt该二叉树的先序遍历序列为: );Preorder(bt);else if(choice=3)printf(nttt该二叉树的中序遍历序列为: );Inorder(bt);else if(choice=4)printf(nttt该二叉树的后序遍历序列为: );Postorder(bt);else if(choice=5)count=0;CountLeaf(bt);printf(nttt该二叉树有%d个叶子结点。n,count);else if(choice=6)count=0;x=CountNode(bt);printf(nttt该二叉树共有%d个叶子结点。n,

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论