- 1、本文档共9页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
习题6 树和二叉树
1. 名词解释
(1)二叉树
二叉树(binary tree)是树的度≤2的有序树。
(2)满二叉树
在一棵二叉树中,如果每层的结点都是满(不能再多)的,就称之为满二叉树。
(3)完全二叉树
对一棵满二叉树中的结点按从上至下、从左到右的顺序进行编号,如果从最后一个结点开始按编号递减的次序删除m(m≥0)个结点后得到的二叉树称为完全二叉树。
(4)线索二叉树
在二叉链表中的空闲指针域中存放某种遍历过程中得到的结点的前导或后继信息,并为链表中的每个结点增加两个标记域lflg和rflg,且作以下约定:如果lflg为0时,lchild域存放结点的左孩子指针,否则,lchild域存放结点的前导指针;如果rflg为0时,rchild域存放结点的右孩子指针,否则,rchild域存放结点的后继指针。通常把采用这种存储结构的二叉树称为线索二叉树。
(5)树的带权路径长度
如果树中的每个叶子上都附带有一个权值,则通常把树中所有叶子的带权路径长度之和称为树的带权路径长度。
2. 填空题
(1)树是n(n≥0)个结点的有限集合,在一棵非空树中,有且仅有一个(根结点),其余结点分成m(m≥0)棵(互不相交)的子树。
(2)树中某结点的子树的个数称为该结点的(度),子树的根结点称为该结点的(孩子),该结点称为其子树根结点的(双亲)。
(3)一棵深度为k的正则二叉树(没有度为1的结点的二叉树)至少有(2k-1)个结点。
(4)一棵含有11个顶点的正则二叉树的最大深度可以是(6),最小深度可以是(4)。
(5)一棵深度为k的满二叉树的叶子有(2k-1)个。
(6)一棵深度为k的完全二叉树的结点至多有(2k-1)个,至少有(2k-1)个。
(7)已知完全二叉树的第6层(从0层开始计)有10个叶子,则整个二叉树的结点数最多是(235)个。
说明:在完全二叉树中叶子只能出现在最底两层,故n=(27-1)+(26-10)*2
(8)具有n0个叶子的二叉树至少含有(2n0-1)个结点。
按二叉树性质可知,n=n0+n1+n2,n0=n2+1,故:n=2n0+n1-1,显然,n1最少时,n就最少,故,n=2n0-1。
(9)一棵含有n个结点的m叉树,可能达到的最大深度是(n),可能达到的最小深度是((int)logmn+1,即完全m叉树)。
(10)已知一棵度为m的树中有n1个度为1的结点,n2个度为2的结点,…,nm个度为m的结点,问该树中有(n2+ 2n3+ 3n4+……+(m-1)×nm)个叶子结点。
(11)已知一棵共有n个结点的树,其中所有分支结点的度均为k,则该树的叶子个数为((n(k-1)+1)/k)。
证明:显然有b=n-1,b=knk,n=nk+ n0,可得结论。
(12)已知一算术表达式的中缀形式为A+B*C-D/E,后缀形式为ABC*+DE/-,其前缀形式为(-+A*BC/DE)。
(13)算术表达式A+B*(C+D/E)转为后缀表达式后为(ABCDE/+*+)。
(14)有n个叶子的哈夫曼树的结点总数为(2n-1)个。
(15)利用二叉链表(孩子兄弟表示法)存储树,则根结点的右指针为(空)值。
3. 简答题
(1)请简述一棵度为2的树与一棵二叉树之间的区别。
度为2的树是指树中结点的度的最大值为2,不一定是有序树。二叉树是有序树,二叉树的度可以为2,也可以为1或0。度为2的树可能是一棵二叉树,一棵二叉树也可能是度为2的树。
(2)一棵含70个结点的完全二叉树采用本书讲述的顺序存储结构存储,请问:
(A)?????? 最后一个非叶子结点的序号位置是多少?34
(B)?????? 序号为40的结点的双亲的序号位置是多少?19
(C)?????? 序号为20的结点的左孩子和右孩子的序号位置分别是多少?41,42
(D)?????? 该树是否存在度为1的结点?是
(E)?????? 该树的叶子共有多少个?35
(F)?????? 该树的深度是多少?7
(3)根据先根序、中根序遍历写出后根序遍历序列。
先根序遍历序列:ABDGECFH
中根序遍历序列:DGBEACHF
后根序遍历序列:GDEBHFCA
(4)请分别分析满足下面条件的所有非空二叉树应是什么样的:①前根序序列和中根序序列相同;②中根序序列和后根序序列相同;③前根序序列和后根序列相同。
①右单支二叉树②左单支二叉树③只有根结点
(5)假设用于通讯的电文仅由8个字母{A,B,C,D,E,F,G,H}组成,字母在电文中出现的频率分别为{7,19,2,6,32,3,21,10}。试为这8个字母设计Huffman编码。
3. 编程题
(1)已知某二叉树采用二叉链表存储结构,编写交换二叉树(每个结点)的左右孩子的算法。
void BTreeExchangeChild(BKBTree
文档评论(0)