设二叉树采用链式存储结构,试设计一个算法计算一棵给定二叉树中叶子结点的数目

设二叉树采用链式存储结构,试设计一个算法计算一棵给定二叉树中叶子结点的数目

ID:39644067

大小:24.50 KB

页数:3页

时间:2019-07-08

设二叉树采用链式存储结构,试设计一个算法计算一棵给定二叉树中叶子结点的数目_第1页
设二叉树采用链式存储结构,试设计一个算法计算一棵给定二叉树中叶子结点的数目_第2页
设二叉树采用链式存储结构,试设计一个算法计算一棵给定二叉树中叶子结点的数目_第3页
资源描述:

《设二叉树采用链式存储结构,试设计一个算法计算一棵给定二叉树中叶子结点的数目》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、设二叉树采用链式存储结构,试设计一个算法计算一棵给定二叉树中叶子结点的数目includeincludedefinemax10typedefstructnodechardatanodelchildrchildBitreeBitreeBmaxBitreeCreatree//建立二叉树BitreeTScharchintfrontrearsignsign0front0rear-1TNULLprintf建立二叉树:nchgetcharwhilechifch//输入结点不是虚结点SBitreemallocsizeofBitreeS-datachS-lchildS-rchildNULLrearBrearS

2、ifrearfrontTSsignelseifsign21//寻找父结点Bfront-lchildSifsign20Bfront-rchildSfrontsignelse//输入结点为虚结点ifsign20frontsignchgetcharreturnTintSearchleafBitreeT//计算叶子数ifTNULLreturn0elseifT-lchildNULLT-rchildNULLreturn1elsereturnSearchleafT-lchildSearchleafT-rchildvoidvisitBitreeTprintfcnT-datavoidInorderBitree

3、T//中序遍历二叉树ifTNULLInorderT-lchildvisitTInorderT-rchildvoidmainBitreeTTCreatreeprintf中序遍历:nInorderTprintf叶子数dnSearchleafT题目 设二叉树采用链式存储结构试设计一个算法计算一棵给定二叉树中叶子结点的数目。问题分析本程序要求在一棵二叉树中实现计算叶子结点数目的功能为完成上述功能需要解决的关键问题是建立二叉树过程及查找叶子结点过程。概要设计①建立一个以二叉链表方式存储的二叉树输入结点信息时按照完全二叉树的结点顺序输入。②先序遍历二叉树并判断遍历的根是否是叶子结点若是并记录叶子结点个数

4、。叶子结点判断条件为左孩子域和右孩子域都为空。详细设计①建立二叉树时按照完全二叉树的结点顺序输入表示虚结点表示输入结束。若不是虚结点时则建立一个新结点并且将其作为左孩子或右孩子结点连接到它的父结点上第一个结点无父结点若是虚结点则将空结点NULL作为左孩子或右孩子结点连接到它的父节点上。②查找叶子结点利用递归先序遍历二叉树方法来查找叶子结点当遍历一个根结点时判断其左孩子域和右孩子域是否都为空若都为空则该结点是叶子结点并用记录叶子个数否则不是叶子结点。调试分析及小结错误及分析当按照完全二叉树的结点顺序输入ABCDE后程序无法运行。经测试发现在建立二叉树时出现问题。当扫描到B时执行elseifsi

5、gn21Bfront-lchildSSignifsign20Bfront-rchildSfrontsign注执行上述程序前sign1Bfront指向关键字为A的结点。当一个if语句段执行完后关键字为A的结点的左孩子为关键字为B的结点sign2。此时本应结束else语句段但由于sign2则第二个if语句条件为真继续执行因此导致程序执行出错。改正在if语句外置sign改正后代码如下elseifsign21Bfront-lchildSifsign20Bfront-rchildSfrontsign

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。