习题讲解(第6章1).ppt

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

习题讲解 第6章 树 作业 举几对具有相同先根、后根遍历序列的二叉树。 6-7 写出二叉树的先根、中根遍历的非递归算法。 6-7 判断以下命题是否为真?若真,请证明之;否则,举出反例。 一棵二叉树形的所有的叶结点,在先根次序、中根次序和后根次序下的排列都按相同的相对位置出现。 作业 先根遍历二叉树的非递归算法。 算法Preorder(t) IO1[建立堆栈] CREATE(S). IO2[堆栈初始化] S ? t. IO3[先根遍历] while not (stackEmpty(S)) ( m ? S. if m≠null then ( visit(m). s?right(m). s?left(m). ) ) 先根遍历二叉树的非递归算法。 (先根遍历树等于先根遍历二叉树) 中根遍历二叉树的非递归算法。 (后根遍历树等于中根遍历二叉树) 算法Inorder(t) IO1[建立堆栈] CREATE(S). IO2[堆栈初始化] S ? (t,0). IO3[中根遍历] while not (stackEmpty(S)) ( (m,i) ? S. if m≠null then ( if i==0 then (S?(m,1). S ?(left(m),0).) if i==1 then ( visit(data(m)). S ?(right(m),0). ) ) ) * * 举几对具有相同先根、后根遍历序列的二叉树。 先根遍历顺序:A B C 后根遍历顺序:C B A [先根遍历和后根遍历不能唯一确定一个树] A B C A B C A B C G F E D C B A L K J I H 先根: A B C E I F J D G H K L 中根: E I C F J B G D K H L A 后根: I E J F C G K L H D B A 数学归纳法 令n等于二叉树的高度; n=1时; 假设n=k时命题成立,n=k+1时,任意两个叶结点l1,l2: l1,l2都在根左(右)子树当中。 l1,l2不在根的同一个子树当中。 void BinTreeT :: PreOrder( ) { Stack BinTreeNodeT * s ; BinTreeNodeT *p = root ; do { while(p!=null) { visit(p); s.Push(p); p=p-left; } while ((p=null)(! s.StackEmpty( ))) { p=s.Pop( ); p=p-right; } } while (! s. StackEmpty( )) }

文档评论(0)

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

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

1亿VIP精品文档

相关文档