


全文预览已结束
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
#include#include#define max 10typedef struct nodechar data;node *lchild,*rchild;Bitree;Bitree *Bmax;Bitree *Creatree() /建立二叉树Bitree *T,*S;char ch;int front,rear,sign;sign=0;front=0;rear=-1;T=NULL;printf(建立二叉树:n);ch=getchar();while(ch!=#)if(ch!=) /输入结点不是虚结点S=(Bitree *)malloc(sizeof(Bitree);S-data=ch;S-lchild=S-rchild=NULL;rear+;Brear=S;if(rear=front)T=S;sign+;elseif(sign%2=1) /寻找父结点Bfront-lchild=S; if(sign%2=0)Bfront-rchild=S;front+;sign+;else /输入结点为虚结点if(sign%2=0)front+;sign+;ch=getchar();return T;int Searchleaf(Bitree *T) /计算叶子数if(T=NULL)return 0;else if(T-lchild=NULL&T-rchild=NULL)return 1;else return(Searchleaf(T-lchild)+Searchleaf(T-rchild);void visit(Bitree *T)printf(%cn,T-data);void Inorder(Bitree *T) /中序遍历二叉树if(T!=NULL)Inorder(T-lchild);visit(T);Inorder(T-rchild);void main()Bitree *T;T=Creatree();printf(中序遍历:n);Inorder(T);printf(叶子数%dn,Searchleaf(T);欢迎下载题目:设二叉树采用链式存储结构,试设计一个算法计算一棵给定二叉树中叶子结点的数目。问题分析:本程序要求在一棵二叉树中实现计算叶子结点数目的功能,为完成上述功能,需要解决的关键问题是建立二叉树过程及查找叶子结点过程。概要设计:建立一个以二叉链表方式存储的二叉树,输入结点信息时按照完全二叉树的结点顺序输入。先序遍历二叉树,并判断遍历的根是否是叶子结点,若是并记录叶子结点个数。叶子结点判断条件为:左孩子域和右孩子域都为空。详细设计:建立二叉树时,按照完全二叉树的结点顺序输入,表示虚结点,#表示输入结束。若不是虚结点时,则建立一个新结点,并且将其作为左孩子或右孩子结点连接到它的父结点上(第一个结点无父结点);若是虚结点,则将空结点(NULL)作为左孩子或右孩子结点连接到它的父节点上。查找叶子结点:利用递归先序遍历二叉树方法来查找叶子结点,当遍历一个根结点时判断其左孩子域和右孩子域是否都为空,若都为空,则该结点是叶子结点并用记录叶子个数,否则不是叶子结点。调试分析及小结: 错误及分析:当按照完全二叉树的结点顺序输入ABCDE#后,程序无法运行。经测试,发现在建立二叉树时出现问题。 当扫描到B时,执行else if(sign%2=1) Bfront-lchild=S; Sign+; if(sign%2=0) Bfront-rchild=S; front+; sign+; 注:执行上述程序前,sign=1,Bfront指向关键字为A的结点。 当一个if语句段执行完后,关键字为A的结点的左孩子为关键字为B的结点,sign=2。此时本应结束else语句段,但由于sign=2,则第二个if语句条件为真,继续执行,因此导致程序执行出错。 改正:在if语句外置sign+,
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- GB/T 7752-2025绝缘胶粘带工频介电强度和耐电压的试验方法
- 2025年山东兴罗投资控股有限公司招聘工作人员(14人)考前自测高频考点模拟试题及1套完整答案详解
- 2025年菏泽市省属公费师范毕业生专项招聘(421人)考前自测高频考点模拟试题及一套参考答案详解
- 2025吉林长春市直事业单位招聘高层次人才17人(4号)考前自测高频考点模拟试题完整答案详解
- 2025年黑河逊克县乡村医生公开招聘19人考前自测高频考点模拟试题含答案详解
- 2025金隅集团春季校园招聘模拟试卷完整答案详解
- 2025年镀锡板卷(马口铁)项目合作计划书
- Heptanoyl-thio-PC-生命科学试剂-MCE
- Haploperoside-A-Scopolin-6-O-α-L-rhamnopyranoside-生命科学试剂-MCE
- 安全培训效果评估改进
- 矩阵论知到章节答案智慧树2023年哈尔滨工程大学
- 浙江省安全员《B证》考试题库及答案
- GB/T 6175-20162型六角螺母
- GB/T 3810.4-2016陶瓷砖试验方法第4部分:断裂模数和破坏强度的测定
- 手术室进修护士结业理论考试题附答案
- 组织行为学MBA全套课件
- 光伏施工方案
- 支架预压沉降观测报告
- 医疗风险管理检查记录表
- 全息经络刮痧疗法(内部培训)课件
- 幼儿园绘本故事:《我爸爸》 PPT课件
评论
0/150
提交评论