- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第7章树形结构分析
给定先序、中序和后序遍历序列可以唯一确定这棵二叉树的树形。 仅由一个先序序列(或中序序列、后序序列),无法确定这棵二叉树的树形。 思考:给定先序、中序和后序遍历序列中任意两个,是否可以唯一确定这棵二叉树的树形? 命题成立否? 同时给定一棵二叉树的先序序列和中序序列就能唯一确定这棵二叉树。 同时给定一棵二叉树的中序序列和后序序列就能唯一确定这棵二叉树。 同时给定一棵二叉树的先序序列和后序序列就能唯一确定这棵二叉树。 ? ? ? 定理7.1:任何n(n≥0)个不同节点的二又树,都可由它的中序序列和先序序列唯一地确定。 采用数学归纳法证明。 当n=0时,二叉树为空,结论正确。 假设节点数小于n的任何二叉树,都可以由其先序序列和中序序列唯一地确定。 已知某棵二叉树具有n(n>0)个不同节点,其先序序列是a0a1…an-1;中序序列是b0b1…bk-1bkbk+1…bn-1。 因为在先序遍历过程中,访问根节点后,紧跟着遍历左子树,最后再遍历右子树。所以a0必定是二叉树的根节点,而且a0必然在中序序列中出现。也就是说,在中序序列中必有某个bk(0≤k≤n-1)就是根节点a0。 由于bk是根节点,而在中序遍历过程中,先遍历左子树,再访问根节点,最后再遍历右子树。所以在中序序列中,b0b1…bk-1必是根节点bk(也就是a0)左子树的中序序列,即bk的左子树有k个节点(注意k=0表示节点bk没有左子树)。而bk+1…bn-1必是根节点bk(也就是a0)右子树的中序序列,即bk的右子树有n-k-1个节点(注意k=n-1表示节点bk没有右子树)。。 另外,在先序序列中,紧跟在根节点a0之后的k个节点a1…ak就是左子树的先序序列,ak+1…an-1这n-k-1就是右子树的先序序列。 根据归纳假设,由于子先序序列a1…ak和子中序序列b0b1…bk-1可以唯一地确定根节点a0的左子树,而子先序序列ak+1…an-1和子中序序列bk+1…bn-1可以唯一地确定根节点a0的右子树。 综上所述,这棵二叉树的根节点己经确定,而且其左、右子树都唯一地确定了,所以整个二叉树也就唯一地确定了。 例7.11 假设二叉树采用二叉链存储结构存储,试设计一个算法输出一棵给定二叉树的所有叶子节点。 解:输出一棵二叉树的所有叶子节点的递归模型f()如下: f(b):不做任何事件 若b=NULL f(b):输出*b节点的data域 若*b为叶子节点 f(b):f(b-lchild);f(b-rchild) 其他情况 void DispLeaf(BTNode *b) { if (b!=NULL) { if (b-lchild==NULL b-rchild==NULL) printf(%c ,b-data); else { DispLeaf(b-lchild); DispLeaf(b-rchild); } } } void DispLeaf(BTNode *b) { if (b!=NULL) { if (b-lchild==NULL b-rchild==NULL) printf(%c ,b-data); DispLeaf(b-lchild); DispLeaf(b-rchild); } } 与先序遍历算法完全相同,只是访问的方式不同。 例7.12 假设二叉树采用二叉链存储结构,设计一个算法Level()求二叉树中指定节点的层数。 解:设 Level(b,x,h)返回二叉链b中data值为x的节点的层数,其中h表示b所指节点的层数。 b 调用Level(b,x,1)返回x节点的层数。 int Level(BTNode *b,ElemType x,int h) //找到*p节点后h为其层次,否则为0 { if (b==NULL) return 0; //空树时返回0 else if (b-data==x) return h; //找到节点时 else { l=Level(b-lchild,x,h+1); //在左子树中查找 if (l==0) //左子树中未找到时在右子树中查找 return Level(b-rchild,x,h+1); else return l; } } 注意:基于先序遍历算
您可能关注的文档
最近下载
- 三甲医院必备医疗设备清单大全.doc VIP
- 1_MSDS_柴油-GB 30000 S(化学品安全技术说明书).pdf VIP
- 职业学校建设项目投资估算方案(参考范文).docx
- 2024-2025学年人教版八年级上册历史期末综合训练(含答案).docx VIP
- 《马克思主义基本原理》教案 专题六 劳动价值论.doc VIP
- 建筑施工承插型盘扣式钢管脚手架安全技术标准2021.pdf VIP
- 2025年事业单位考试(医疗卫生类E类)综合应用能力试卷及答案指导.docx VIP
- 人教部编版部编版七下《阿长与山海经》优秀课件(公开课一等奖).pptx VIP
- 食品营养与健康绪论.ppt VIP
- 贫血的中医治疗.pptx VIP
文档评论(0)