搜档网
当前位置:搜档网 › 第六章树和二叉树作业

第六章树和二叉树作业

第六章树和二叉树作业
第六章树和二叉树作业

第六章-树和二叉树-作业

————————————————————————————————作者: ————————————————————————————————日期:

第6章 树和二叉树 作业

第6章树和二叉树作业 1、假设在树中,结点x是结点y的双亲时,用(x,y)来表示树边。已知一棵树的树边集合为{ (e,i), (b,e), (b,d), (a,b), (g,j), (c,g), (c,f), (h,l), (c,h), (a,c) } ,用树型表示法表示该树,并回答下列问题: ①哪个是根结点? 哪些是叶子结点? 哪个是g的双亲? 哪些是g的祖先? 哪些是g的孩子? 那些是e的子孙? 哪些是e的兄弟? 哪些是f 的兄弟? ②b和n的层次各是多少? 树的深度是多少? 以结点c为根的子树的深度是多少? 2、一棵深度为h的满k叉树有如下性质:第h层上的结点都是叶子结点,其余各层上每个结点都有k棵非空子树。如果按层次顺序(同层自左至右)从1开始对全部结点编号,问: ①各层的结点数是多少? ②编号为i的结点的双亲结点(若存在)的编号是多少? ③编号为i的结点的第j个孩子结点(若存在)的编号是多少? ④编号为i的结点的有右兄弟的条件是什么? 其右兄弟的编号是多少? 3、设有如图6-27所示的二叉树。 ①分别用顺序存储方法和链接存储方法画 出该二叉树的存储结构。 ②写出该二叉树的先序、中序、后序遍历序 列。 4、已知一棵二叉树的先序遍历序列和中序遍 历序列分别为ABDGHCEFI和 GDHBAECIF,请画出这棵二叉树,然后给 出该树的后序遍历序列。

5、设一棵二叉树的中序遍历序列和后序遍历序列分别为BDCEAFHG 和DECBHGFA ,请画出这棵二叉树,然后给出该树的先序序列。 6、已知一棵二叉树的中序遍历序列和后序遍历序列分别为dgbaekchif 和gdbkeihfca,请画出这棵二叉树对应的中序线索树和后序线索树。 7、以二叉链表为存储结构,请分别写出求二叉树的结点总数及叶子结点总数的算法。 8、设图6-27所示的二叉树是森林F所对应的二叉树,请画出森林F。 9、设有一棵树,如图6-28 所示。 ①请分别用双亲表示法、孩 子表示法、孩子兄弟表示法 给出该树的存储结构。 ②请给出该树的先序遍历 序列和后序遍历序列。 ③请将这棵树转换成二叉 树。 10、设给定权值集合 w={3,5,7,8,11,12} ,请构造 关于w的一棵huffman树,并求其加权路径长度WPL 。 11、假设用于通信的电文是由字符集{a, b, c, d, e, f, g, h}中的字符构成,这8个字符在电文中出现的概率分别为{0.07, 0.19, 0.02, 0.06, 0.32, 0.03, 0.21, 0.10} 。 ①请画出对应的huffman树(按左子树根结点的权小于等于右子树根结点的权的次序构造)。 ②求出每个字符的huffman编码。

第6章树和二叉树作业

第六章树和二叉树 1 一、选择题 1. 已知一算术表达式的中缀形式为A+B*C-D/E,后缀形式为ABC*+DE/-,其前缀形式为( ) A.-A+B*C/DE B.-A+B*CD/E C.-+*ABC/DE D.-+A*BC/DE 2. 在下述结论中,正确的是() ①只有一个结点的二叉树的度为0; ②二叉树的度为2; ③二叉树的左右子树可任意交换; ④深度为K的完全二叉树的结点个数小于或等于深度相同的满二叉树。 A.①②③B.②③④C.②④D.①④ 3. 设树T的度为4,其中度为1,2,3和4的结点个数分别为4,2,1,1 则T中的叶子数为() A.5 B.6 C.7 D.8 4. 设森林F对应的二叉树为B,它有m个结点,B的根为p,p的右子树结点个数为n,森林F中第一棵树的结点个数是() A.m-n B.m-n-1 C.n+1 D.条件不足,无法确定 5. 若一棵二叉树具有10个度为2的结点,5个度为1的结点,则度为0的结点个数是() A.9 B.11 C.15 D.不确定 6. 设森林F中有三棵树,第一,第二,第三棵树的结点个数分别为M1,M2和M3。与森林F对应的二叉树根结点的右子树上的结点个数是()。

A.M1 B.M1+M2 C.M3 D.M2+M3 7.有关二叉树下列说法正确的是() A.二叉树的度为2 B.一棵二叉树的度可以小于2 C.二叉树中至少有一个结点的度为2 D.二叉树中任何一个结点的度都为2 8. 一棵完全二叉树上有1001个结点,其中叶子结点的个数是()。 A.250 B.500 C.254 D.505 E.以上答案都不对 9. 具有10个叶结点的二叉树中有()个度为2的结点。 A.8 B.9 C.10 D.ll 10. 深度为h的满m叉树的第k层有()个结点。(1=

树和二叉树作业(一)

树作业(一) 【作业要求】 1.提交文档,写出答案 2.如果有需要绘图,可以手绘拍照节省时间 【题目说明】 1 单项选择题 1. 由于二叉树中每个结点的度最大为2,所以二叉树是一种特殊的树,这种说法_B_。 A. 正确 B. 错误 2. 假定在一棵二叉树中,双分支结点数为15,单分支结点数为30个,则叶子结点数为 B 个。 A.15 B.16C.17D.47 3. 按照二叉树的定义,具有3个结点的不同形状的二叉树有__C__种。 A. 3 B. 4 C. 5 D. 6 4. 按照二叉树的定义,具有3个不同数据结点的不同的二叉树有__C__种。 A. 5 B. 6 C. 30 D. 32 5. 深度为5的二叉树至多有__C__个结点。 A. 16 B. 32 C. 31 D. 10 6. 设高度为h的二叉树上只有度为0和度为2的结点,则此类二叉树中所包含的结点数至少为_ _B__。 A. 2h B. 2h-1 C. 2h+1 D. h+1 7. 对一个满二叉树,m个树叶,n个结点,深度为h,则__D__ 。 A. n=h+m B. h+m=2n C. m=h-1 D. n=2 h-1 8. 如图1所示的4棵二叉树,__C__不是完全二叉树。

(A) (B) (C) (D) 图1 9. 树最适合用来表示__C__。 A. 有序数据元素 B. 无序数据元素 C. 元素之间具有分支层次关系的数据 D. 元素之间无联系的数据 2 填空题 1. 举例说明树和二叉树的两个主要差别_树的节点的最大度数没有限制,但是二叉树的节点的最大度数为2___、__树中节点的子节点没有顺序之分,但是二叉树中节点的子节点分左孩子、右孩子__。 2. 一棵二叉树的结点数据采用顺序存储结构,存储于数组t中,如下图所示,请画出该二叉树的形态。 123456789101112131415161718192021 e a f d g c j l h b 一棵二叉树的顺序存储数组t 3. 深度为k的完全二叉树至少有__2k?1__个结点。至多有__2k?1__个结点,若按自上而下,从左到右次序给结点编号(从1开始),则编号最小的叶子结点的编号是__2k?2+1__。 4、已知一棵完全二叉树的第6层(设根是第1层)有8个叶结点,则该完全二叉树的结点个数最多是多少?

《数据结构》习题汇编06第六章树和二叉树试题

第六章树和二叉树试题 一、单项选择题 1.树中所有结点的度等于所有结点数加()。 A. 0 B. 1 C. -1 D. 2 2.在一棵树中,()没有前驱结点。 A. 分支结点 B. 叶结点 C. 根结点 D. 空结点 3.在一棵二叉树的二叉链表中,空指针域数等于非空指针域数加()。 A. 2 B. 1 C. 0 D. -1 4.在一棵具有n个结点的二叉树中,所有结点的空子树个数等于()。 A. n B. n-1 C. n+1 D. 2*n 5.在一棵具有n个结点的二叉树的第i层上(假定根结点为第0层,i大于等

于0而小于等于树的高度),最多具有()个结点。 A. 2i B. 2i+1 C. 2i-1 D. 2n 6.在一棵高度为h(假定根结点的层号为0)的完全二叉树中,所含结点个数不 小于()。 A. 2h-1 B. 2h+1 C. 2h-1 D. 2h 7.在一棵具有35个结点的完全二叉树中,该树的高度为()。假定空树 的高度为-1。 A. 5 B. 6 C. 7 D. 8 8.在一棵具有n个结点的完全二叉树中,分支结点的最大编号为()。假 定树根结点的编号为0。 A. ?(n-1)/2? B. ?n/2? C. ?n/2? D. ?n/2? -1 9.在一棵完全二叉树中,若编号为i的结点存在左孩子,则左子女结点的编号 为()。假定根结点的编号为0

A. 2i B. 2i-1 C. 2i+1 D. 2i+2 10.在一棵完全二叉树中,假定根结点的编号为0,则对于编号为i(i>0)的结 点,其双亲结点的编号为()。 A. ?(i+1)/2? B. ?(i-1)/2? C. ?i/2? D. ?i/2? -1 11.在一棵树的左子女-右兄弟表示法中,一个结点的右孩子是该结点的() 结点。 A. 兄弟 B. 子女 C. 祖先 D. 子孙 12.在一棵树的静态双亲表示中,每个存储结点包含()个域。 A. 1 B. 2 C. 3 D. 4 13.已知一棵二叉树的广义表表示为a (b (c), d (e ( , g (h) ), f ) ),则 该二叉树的高度为()。假定根结点的高度为0。 A. 3 B. 4 C. 5 D. 6

作业-树和二叉树

树 (树根结点的高度为1) 一、选择题 3.以下说法错误的是( )。 A.完全二叉树上结点之间的父子关系可由它们编号之间的关系来表达B.在三叉链表上,二叉树的求双亲操作很容易实现 C.在二叉链表上,求根以及求左、右孩子等操作很容易实现 D.在二叉链表上,求双亲操作的时间性能很好 4.以下说法错误的是( )。 A.一般在哈夫曼树中,权值越大的叶子离根结点越近 B.哈夫曼树中没有度数为1的分支结点 C.若初始森林中共有n棵二叉树,最终求得的哈夫曼树共有2n-1个结点D.若初始森林中共有n棵二叉树, 进行2n-1次合并后才能剩下一棵最终的哈夫曼树 5.深度为6的二叉树最多有( )个结点。 A.64 B.63 C.32 D.31 6.将含有41个结点的完全二叉树从根结点开始编号,根为1号, 后面按从上到下、从左到右的顺序对结点编号, 那么编号为21的双亲结点编号为( )。 A.10B.11 C.41 D.20 7.设深度为k的二叉树上只有度为0和度为2的结点, 则这类二叉树上所含结点总数最少( )个。 A.k+l B.2k C.2k-1D.2k+1 8.下列说法中正确的是( )。 A.任何一棵二叉树中至少有一个结点的度为2 B.任何一棵二叉树中每个结点的度都为2 C.任何一棵二叉树中的每个结点的度肯定等于2 D.任何一棵二叉树中的每个结点的度都可以小于2 9.一棵二叉树满足下列条件:对任意结点,若存在左、右子树, 则其值都小于它的左子树上所有结点的值, 而大于右子树上所有结点的值。 现采用( )遍历方式就可以得到这棵二叉树所有结点的递减序列。A.前序B.中序C.后序D.层次 10.如图6-1所示的二叉树的中序遍历序列是( )。 A.abcdgef B.dfebagc C.dbaefcg D.defbagc

数据结构第六章树和二叉树习题及答案

习题六树和二叉树 一、单项选择题 1.以下说法错误的是() A. 树形结构的特点是一个结点可以有多个直接前趋 B. 线性结构中的一个结点至多只有一个直接后继 C. 树形结构可以表达(组织)更复杂的数据 D. 树(及一切树形结构)是一种”分支层次”结构 E. 任何只含一个结点的集合是一棵树 2. 下列说法中正确的是() A. 任何一棵二叉树中至少有一个结点的度为2 B. 任何一棵二叉树中每个结点的度都为2 C. 任何一棵二叉树中的度肯定等于2 D. 任何一棵二叉树中的度可以小于2 3. 讨论树、森林和二叉树的关系,目的是为了() A. 借助二叉树上的运算方法去实现对树的一些运算 B. 将树、森林按二叉树的存储方式进行存储 C. 将树、森林转换成二叉树 D. 体现一种技巧,没有什么实际意义4.树最适合用来表示() A. 有序数据元素 B .无序数据元素 C.元素之间具有分支层次关系的数据 D .元素之间无联系的数据 5.若一棵二叉树具有10个度为2的结点,5个度为1的结点,则度为0的结点个数是()A.9 B .11 C .15 D .不确定 6. 设森林F中有三棵树,第一,第二,第三棵树的结点个数分别为M1, M2和M3与森林F 对应的二叉树根结点的右子树上的结点个数是()。 A.M1 B .M1+M2 C .M3 D .M2+M3 7.一棵完全二叉树上有1001个结点,其中叶子结点的个数是() A.250 B .500 C .254 D .505 E .以上答案都不对 8. 设给定权值总数有n 个,其哈夫曼树的结点总数为() A. 不确定 B . 2n C . 2n+1 D . 2n-1 9.二叉树的第I 层上最多含有结点数为() I I-1 I-1 I A.2I B .2 I-1 -1 C .2 I-1 D .2 I -1 10.一棵二叉树高度为h, 所有结点的度或为0,或为2,则这棵二叉树最少有()结点A.2h B .2h-1 C .2h+1 D .h+1 11. 利用二叉链表存储树,则根结点的右指针是()。 A.指向最左孩子 B .指向最右孩子 C .空D .非空 12.已知一棵二叉树的前序遍历结果为为()。 A.CBEFDA B .FEDCBA 13.已知某二叉树的后序遍历序列是()。 ABCDEF中序遍历结果 为 C .CBEDFA D dabec, 中序遍历序列是 CBAEDF则后序遍历的结 果 .不定 debac , 它的前序遍历是

数据结构 习题 第六章 树和二叉树

第六章 树和二叉树 一、选择题 1.已知一算术表达式的中缀形式为 A+B*C-D/E ,后缀形式为ABC*+DE/-,其前缀形式为 ( ) A .-A+B*C/DE B. -A+B*CD/E C .-+*ABC/DE D. -+A*BC/DE 【北京航空航天大学 1999 一、3 (2分)】 2.算术表达式a+b*(c+d/e )转为后缀表达式后为( )【中山大学 1999 一、5】 A .ab+cde/* B .abcde/+*+ C .abcde/*++ D .3. 设有一表示算术表达式的二叉树(见下图), 它所表示的算术表达式是( ) 【南京理工大学1999 一、20(2分)】 A. A*B+C/(D*E)+(F-G) B. (A*B+C)/(D*E)+(F-G) C. (A*B+C)/(D*E+(F-G )) D. A*B+C/D*E+F-G 4. 设树T 的度为4,其中度为1,2,3和4的结点个数分别为4,2,1 ,1 则T 中的叶子数为( ) A .5 B .6 C .7 D .8 【南京理工大学 2000 一、8 (1.5分)】 5. 在下述结论中,正确的是( )【南京理工大学 1999 一、4 (1分)】 ①只有一个结点的二叉树的度为0; ②二叉树的度为2; ③二叉树的左右子树可任意 交换; ④深度为K 的完全二叉树的结点个数小于或等于深度相同的满二叉树。 A .①②③ B .②③④ C .②④ D .①④ 6. 设森林F 对应的二叉树为B ,它有m 个结点,B 的根为p,p 的右子树结点个数为n,森林F 中第一棵树的结点个数是( ) A .m-n B .m-n-1 C .n+1 D .条件不足,无法确定 【南京理工大学2000 一、 17(1.5分)】 7. 树是结点的有限集合,它( (1))根结点,记为T 。其余结点分成为m (m>0)个((2)) 的集合T1,T2, …,Tm ,每个集合又都是树,此时结点T 称为Ti 的父结点,Ti 称为T 的子结点(1≤i ≤m )。一个结点的子结点个数称为该结点的( (3) )。二叉树与树是两个 不同的概念,二叉树也是结点的有限集合,它((4))根结点。可以把树的根结点的层数定 义为1,其他结点的层数等于其父结点所在层数加上1。令T 是一棵二叉树,Ki 和Kj 是T 中子结点数小于2的结点中的任意两个,它们所在的层数分别为λKi 和λKj ,当关系式│ λKi-λKj │≤1一定成立时,则称T 为一棵((5))。供选择的答案: (1)(4) A. 有0个或1个 B. 有0个或多个 C. 有且只有一个 D. 有1个或1 个以上 (2) A. 互不相交 B.允许相交 C.允许叶结点相交 D.允许树枝结点相交 (3) A. 权 B.维数 C.次数 D.序 (5) A. 丰满树 B.查找树 C.平衡树 D.完全树 【上海海运学院1999二、 2(5分)】 8.若一棵二叉树具有10个度为2的结点,5个度为1的结点,则度为0的结点个数是( ) A .9 B .11 C .15 D .不确定 【北京工商大学2001一.7(3 分)】 9.在一棵三元树中度为3的结点数为2个,度为2的结点数为1个,度为1的结点数为2

数据结构第六章树和二叉树练习及答案

一、选择题 1、设T是一棵树,T’是对应于x的二叉树,则T的先根次序遍历和T’的()次序遍历相同。 A、先根 B、中根 C、后根 D、以上都不是 2、 3、若二叉树的后序遍历序列为dabec,中序遍历序列为debac,则前序序列遍历为()。 A、acbed B、decab C、deabc D、cedba 4、具有35个结点的完全二叉树的深度为() A、5 B、6 C、7 D、8 5、将一棵有100个结点的完全二叉树从上到下,从左到右依次对结点进行编号,根结点的编号为1,则编号为49的结点的左孩子结点编号为() A、98 B、99 C、50 D、48 6、某二叉树的前序和后序序列正好相反,则该二叉树一定是()的二叉树。 A、空或只有一个结点 B、高度等于其结点数 C、任一结点无左孩子 D、任一结点无左孩子 7、二叉树在线索化后,仍不能有效求解的问题是() A、先根线索二叉树中求先根后继 B、中根线索二叉树中求中根后继 C、中根线索二叉树中求中根前驱 D、后根线索二叉树中求后根后继 8、在线索化二叉树中,t所指结点没有左子树的充足条件是() A、t-lchild==NULL B、t->ltag==1 C、t->ltag==1&&t->lchild==NULL D、以上都不对 9、设高度为h的二叉树上只有度为0和度为2的结点,则此类二叉树中所包含的结点数至少为() A、2h B、2h-1 C、2h+1 D、h+1 10、深度为5的二叉树至多有()个结点。 A、16 B、32 C、31 D、10 11、在一非空二叉树的中序遍历序列中,根结点的右边() A、只有右子树上的所有结点 B、只有右子树上的部分结点 C、只有左子树上的所有结点 D、只有左子树上的部分结点 12、树最适合用来表示() A、有序数据元素 B、无序数据元素 C、元素之间具有分支层次关系的数据 D、元素之间无联系的数据 13、任何一棵二叉树的叶结点在先序、中序和后序遍历序列中的相对次序() A、不发生改变 B、发生改变 C、不能确定 D、以上都不对 14、设n,m为一棵二叉树上的两个结点,在中序遍历时,n在m前的条件是() A、n在m右方 B、n是m祖先 C、n在m左方 D、n是m子孙 15、线索二叉树是一种()结构 A、逻辑 B、逻辑和存储 C、物理 D、线性 16、森林的后根遍历序列与其对应二叉树的()遍历序列一致。 A、先根 B、后根 C、中根 D、不可能 二、填空题 1、由一棵二叉树后序序列和(中序)可唯一确定这棵二叉树。 2、含有n个结点的二叉树用二叉链表表示时,有(N+1)个空链域。 3、有m个叶子结点的哈夫曼树有(2*M-1)个结点。

习题6树和二叉树.docx

习题6树和二叉树 说明: 本文档中,凡红色字标出的题请提交纸质作业,只写题号和答案即可。 6.1单项选择题 1. 由于二叉树屮每个结点的度最大为2,所以二叉树是一种特殊的树,这种说法_B_。 A. 正确 B.错误 2. 假定在一棵二叉树屮,双分支结点数为15,单分支结点数为30个,则叶子结点数为 B_个。 A. 15 B. 16 C. 17 D. 47 3. 按照二叉树的定义,具有3个结点的不同形状的二叉树有_C_种。 A. 3 B.4 C. 5 D. 6 4. 按照二叉树的定义,具有3个不同数据结点的不同的二叉树有_C_种。 A.5 B.6 C. 30 D. 32 5. 深度为5的二叉树至多有_C_个结点。 A. 16 B. 32 C. 31 D. 10 6. 设高度为h 的二叉树上只有度为0和度为2的结点,则此类二叉树中所包含的结点 数至少为 B 。 A. 2h B. 2h-l C. 2h+l D. h+l 7. 对一个满二叉树,m 个树叶,n 个结点,深度为h,则_A_。 A. n=h+m B. h+m=2n C. m=h-1 D. n=2 h -l 8. 任何一棵二叉树的叶结点在先序、中序和后序遍历序列中的相对次序_A_。 A.不发生改变 B.发生改变 C.不能确定 D.以上都不对 9. 如杲某二叉树的前根次序遍历结果为stuwv,中序遍历为uwtvs,那么该二叉树的后 序为_C_。 A. uwvts B. vwuts C. wuvts D. wutsv 10. 二叉树的前序遍历序列中,任意一个结点均处在其子女结点的前面,这种说法_A_。 A.正确 B.错误 11. 某二叉树的前序遍历结点访问顺序是abdgcefh,中序遍历的结点访问顺序是 dgbaechf,则其后序遍历的结点访问顺序是_D_。 A. bdgcefha B. gdbecfha 12. 在一非空二叉树的中序遍历序列中, A.只有右子树上的所有结点 13. 如图6.1所示二叉树的中序遍历序列是_B_。 14. 一棵二叉树如图6.2所示,其中序遍历的序列为 B 。 A. abdgcefh B. dgbaechf C. gdbehfca D. abcdefgh C. bdgaechf D. gdbehfca 根结点的右边_A_。 B.只有右子树上的部分结点 C.只有左子树上的部分结点 D.只有左子树上的所有结点 A. abcdgef B. dfebagc C. dbaefcg D. defbagc 图6」

第6章 树和二叉树答案

第六章答案 6. 1分别画出具有3个结点的树和3个结点的二叉树的所有不同形态。 【解答】 具有3个结点的树具有3个结点的二叉树 6.3已知一棵度为k的树中有n1个度为1的结点,n2个度为2的结点,……,n k个度为k 的结点,则该树中有多少个叶子结点? 【解答】设树中结点总数为n,则n=n0 + n1 + …… + n k 树中分支数目为B,则B=n1 + 2n2 + 3n3+ …… + kn k 因为除根结点外,每个结点均对应一个进入它的分支,所以有n= B + 1 即n0 + n1 + …… + n k = n1 + 2n2 + 3n3+ …… + kn k + 1 由上式可得叶子结点数为:n0 = n2 + 2n3+ …… + (k-1)n k + 1 6.5已知二叉树有50个叶子结点,则该二叉树的总结点数至少应有多少个? 【解答】n0表示叶子结点数,n2表示度为2的结点数,则n0 = n2+1 所以n2=n0 –1=49,当二叉树中没有度为1的结点时,总结点数n=n0+n2=99 6.6 试分别找出满足以下条件的所有二叉树: (1) 前序序列与中序序列相同; (2) 中序序列与后序序列相同; (3) 前序序列与后序序列相同。 【解答】 (1) 前序与中序相同:空树或缺左子树的单支树; (2) 中序与后序相同:空树或缺右子树的单支树; (3) 前序与后序相同:空树或只有根结点的二叉树。 6.9 假设通讯的电文仅由8个字母组成,字母在电文中出现的频率分别为: 0.07,0.19,0.02,0.06,0.32,0.03,0.21,0.10 请为这8个字母设计哈夫曼编码。 【解答】 构造哈夫曼树如下:

作业-树和二叉树

作业-树和二叉树

树 (树根结点的高度为1) 一、选择题 3.以下说法错误的是( )。 A.完全二叉树上结点之间的父子关系可由它们编号之间的关系来表达 B.在三叉链表上,二叉树的求双亲操作很容易实现 C.在二叉链表上,求根以及求左、右孩子等操作很容易实现 D.在二叉链表上,求双亲操作的时间性能很好4.以下说法错误的是( )。 A.一般在哈夫曼树中,权值越大的叶子离根结点越近 B.哈夫曼树中没有度数为1的分支结点C.若初始森林中共有n棵二叉树,最终求得的哈夫曼树共有2n-1个结点 D.若初始森林中共有n棵二叉树, 进行2n-1次合并后才能剩下一棵最终的哈夫曼树 5.深度为6的二叉树最多有( )个结点。A.64 B.63 C.32 D.31

6.将含有41个结点的完全二叉树从根结点开始编号,根为1号, 后面按从上到下、从左到右的顺序对结点编号,那么编号为21的双亲结点编号为( )。 A.10B.11 C.41 D.20 7.设深度为k的二叉树上只有度为0和度为2的结点, 则这类二叉树上所含结点总数最少( )个。A.k+l B.2k C.2k-1D.2k+1 8.下列说法中正确的是( )。 A.任何一棵二叉树中至少有一个结点的度为2 B.任何一棵二叉树中每个结点的度都为2 C.任何一棵二叉树中的每个结点的度肯定等于2 D.任何一棵二叉树中的每个结点的度都可以小于2 9.一棵二叉树满足下列条件:对任意结点,若存在左、右子树, 则其值都小于它的左子树上所有结点的值, 而大于右子树上所有结点的值。

现采用( )遍历方式就可以得到这棵二叉树所有结点的递减序列。 A.前序B.中序C.后序D.层次 10.如图6-1所示的二叉树的中序遍历序列是( )。 A.abcdgef B.dfebagc C.dbaefcg D.defbagc 11.已知某二叉树的后序遍历序列是deacb,中序遍历序列是deabc, 它的前序遍历序列是( )。 A.acbed B.baedc C.dceab D.cedba 12.某二叉树的前序遍历的结点访问顺序是abdgcefh, 中序遍历的结点访问顺序是dgbaechf, 则其后序遍历的结点访问顺序是( )。

第六章树和二叉树讲解

第六章树和二叉树 一、选择题 1.已知一算术表达式的中缀形式为 A+B*C-D/E,后缀形式为ABC*+DE/-,其前缀形式为( D ) A.-A+B*C/DE B. -A+B*CD/E C.-+*ABC/DE D. -+A*BC/DE 2.算术表达式a+b*(c+d/e)转为后缀表达式后为( B ) A.ab+cde/* B.abcde/+*+ C.abcde/*++ D.abcde*/++ 3.设有一表示算术表达式的二叉树(见下图), 它所表示的算术表达式是( C ) A. A*B+C/(D*E)+(F-G) B. (A*B+C)/(D*E)+(F-G) C. (A*B+C)/(D*E+(F-G)) D. A*B+C/D*E+F-G 4.设树T的度为4,其中度为1,2,3和4的结点个数分别为4,2,1,1 则T中的叶子数为( D )A.5 B.6 C.7 D.8 5.在下述结论中,正确的是( D ) ①只有一个结点的二叉树的度为0; ②二叉树的度为2;③二叉树的左右子树可任意交换; ④深度为K的完全二叉树的结点个数小于或等于深度相同的满二叉树。 A.①②③ B.②③④ C.②④ D.①④ 6.设森林F对应的二叉树为B,它有m个结点,B的根为p,p的右子树结点个数为n,森林F中第一棵树的结点个数是( A ) A.m-n B.m-n-1 C.n+1 D.条件不足,无法确定 7. 树是结点的有限集合,它( C )根结点,记为T。其余结点分成为m(m>0)个(A)的集合T1,T2,…,Tm,每个集合又都是树,此时结点T称为Ti的父结点,Ti称为T的子结点(1≤i≤m)。一个结点的子结点个数称为该结点的(C )。二叉树与树是两个不同的概念,二叉树也是结点的有限集合,它(A)根结点。可以把树的根结点的层数定义为1,其他结点的层数等于其父结点所在层数加上1。令T是一棵二叉树,Ki和Kj是T中子结点数小于2的结点中的任意两个,它们所在的层数分别为λKi和λKj,当关系式│λKi-λKj│≤1一定成立时,则称T为一棵(C)。供选择的答案: (1)(4) A.有0个或1个 B.有0个或多个 C.有且只有一个 D.有1个或1个以上 (2) A.互不相交 B.允许相交 C.允许叶结点相交 D.允许树枝结点相交 (3) A.权 B.维数 C.次数 D.序 (5) A.丰满树 B.查找树 C.平衡树 D.完全树 8.若一棵二叉树具有10个度为2的结点,5个度为1的结点,则度为0的结点个数是(B ) A.9 B.11 C.15 D.不确定 9.在一棵三元树中度为3的结点数为2个,度为2的结点数为1个,度为1的结点数为2个,则度为0的结点数为( C )个 A.4 B.5 C.6 D.7 10.设森林F中有三棵树,第一,第二,第三棵树的结点个数分别为M1,M2和M3。与森林F对应的二叉树根结点的右子树上的结点个数是( D )。 A.M1 B.M1+M2 C.M3 D.M2+M3 11.具有10个叶结点的二叉树中有( B)个度为2的结点, A.8 B.9 C.10 D.ll 12.一棵完全二叉树上有1001个结点,其中叶子结点的个数是( E ) A. 250 B.500 C.254 D.505 E.以上答案都不对 13.设给定权值总数有n个,其哈夫曼树的结点总数为( D ) A.不确定 B.2n C.2n+1 D.2n-1 14.有n个叶子的哈夫曼树的结点总数为( D )。 A.不确定 B.2n C.2n+1 D.2n-1 15.若度为m的哈夫曼树中,其叶结点个数为n,则非叶结点的个数为(C )。

表达式用二叉树表示

数据结构程序报告(3) 2011.3.29

2. 需求分析: (1)功能:表达式可以用二叉树表示,对于简单的四则运算,请实现以下功能 【1】对于任意给出的前缀表达式(不带括号)、中缀表达式(可以带括号)或后缀表达式(不带括号),能够在计算机内部构造出一棵表达式二叉树,并且图示出来(图形的形式)。【2】对于构造好的内部表达式二叉树,按照用户的要求输出相应的前缀表达式(不带括号)、中缀表达式(可以带括号,但不允许冗余括)或后缀表达式(不带括号)。 提示:所谓中缀表达式中的冗余括号,就是去掉括号后不影响表达式的计算顺序。例如:“(c+b)+a”中的括号是冗余的,可以表示成不冗余的“c+b+a”。 (2)输入输出要求:请输入字符串表达式: 树形二叉树(图形显示) 中缀表达式为: 前缀表达式为: 后缀表达式为: 3.概要设计:(算法) 分成两部分完成: 【1】前缀、中缀、后缀表达式->二叉树表达式 前缀表达式->二叉树表达式:(a)碰到操作数则把其值赋给相应的新申请的二叉树结点,地址压栈;(b)碰到操作符则把其值赋给相应的新申请的二叉树,并从栈中弹出两个地址,分别作为其右指针和左指针,然后再把其地址压栈,最后一个地址即为二叉树的根结点地址。 中缀表达式->二叉树表达式:把中缀表达式转换成后缀表达式,然后再建立二叉树。

后缀表达式->二叉树表达式:(a)碰到操作数则把其值赋给相应的新申请的二叉树结点,若栈为空则地址压栈,若非空则取栈顶元素,若栈顶元素的左孩子为空则当前结点设为其左孩子,左孩子为满则设为其右孩子再压栈;(b)碰到操作数则把其值赋给相应的新申请的二叉树结点,取栈顶元素,若栈顶元素的左孩子为空则设为其左孩子,左孩子为满则设为其右孩子开始那个元素地址为根结点地址,开始时用变量root保存。 【1】二叉树表达式->前缀、中缀、后缀表达式 二叉树表达式->前缀表达式:对二叉树表达式进行前序遍历。 二叉树表达式->中缀表达式:对二叉树表达式进行中序遍历,若结点操作符的优先级高于其左或右子树,在打印相应的子树之前先打印开括号,在打印相应的子树最后在打印一个闭括号。 二叉树表达式->后缀表达式:对二叉树表达式进行后序遍历。

数据结构习题汇编06第六章树和二叉树试题0001

单项选择题 第六章树和二叉树试题 树中所有结点的度等于所有结点数加( A. 0 B. 1 C. -1 D. 2 在一棵树中,( A. 分支结点 )没有前驱结点。 B. 叶结点 C.根结点 D.空结点 在一棵二叉树的二叉链表中,空指针域数等于非空指针域数加( A. 2 在一棵具有 A. n 在一棵具有 最多具有( A. 2 i B. 1 C. 0 n 个结点的二叉树中,所有结点的空子树个数等于( B. n-1 C. n+1 n 个结点的二叉树的第i 层上(假定根结点为第 ) 个结点。 B. 2 在一棵高度为 八 h-1 A. 2 i+1 亠 c i-1 C. 2 )。 D. -1 )。 D. 2*n 0层,i 大于等于0而小于等于树的高度), f 小 n D. 2 (假定根结点的层号为 B. 2 h+1 0)的完全二叉树中, C. 2 h -1 所含结点个数不小于( _ _ h D. 2 在一棵具有35个结点的完全二叉树中,该树的高度为( A. 5 B. 6 C. 7 在一棵具有n 个结点的完全二叉树中,分支结点的最大编号为 A. (n-1)/2 B. n/2 C. n/2 )。假定空树的高度为-1。 D. 8 )。假定树根结点的编号为 D. n/2 -1 0。 在一棵完全二叉树中, 的编号为0 A. 2i 在一棵完全二叉树中, ( A. )。 (i+1)/2 在一棵树的左子女 A. 兄弟 若编号为i 的结点存在左孩子, 则左子女结点的编号为 ( )。假定根结点 B. 2i-1 C. 2i+1 D. 2i+2 假定根结点的编号为 B. (i-1)/2 0,则对于编号为i (i >0) 的结点,其双亲结点的编号为 C. i/2 D. i/2 -1 -右兄弟表示法中,一个结点的右孩子是该结点的( C.祖先 B.子女 )结点。 D.子孙 在一棵树的静态双亲表示中,每个存储结点包含( A. 1 B. 2 )个 域。 C. 3 D. 4 已知一棵二叉树的广义表表示为 a (b (c ), d (e ( , g (h ) ), f )),则该二叉树的高度为( 假定根结点的高度为 0。 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13.

中南大学数据结构与算法第6章树和二叉树课后作业答案

第6章树(基础知识)习题练习答案 6.1.假设在树中,结点x是结点y的双亲时,用(x,y)来表示树边.已知一棵树边的集合为{(i,m),(i,n),(e,i),(b,e),(b,d),(a,b),(g,j),(g,k),(c,g),(c,f),(h,l),(c,h),(a,c)}用树形表示法出此树,并回答下列问题: (1)哪个是根结点? (2)哪些是叶结点? (3)哪个是g的双亲? (4)哪些是g的祖先? (5)哪些是g的孩子? (6)哪些是e的子孙? (7)哪些是e的兄弟?哪些是f的兄弟? (8)结点b和n的层次各是多少? (9)树的深度是多少? (10)以结点c为根的子树的深度是多少? (11) 树的度数是多少? 答: a是根结点; dmnfjkl是叶结点; c是g的双亲; c,a是g的祖先; j,k是g的孩子; imn是e的子孙; d是e的兄弟;g,h是f的兄弟; b的层次是2;n的层次是5; 树的深度是5; 以c为根的子树深度是3; 树的度数是3; 6.2 一棵度为2的有序树与一棵二叉树有何区别? 答: 一棵度为二的有序树与一棵二叉树的区别在于:有序树的结点次序是相对于另一结点而言的,如果有序树中的子树只有一个孩子时,这个孩子结点就无须区分其左右次序,而二叉树无论其孩子数是否为2,均需确定其左右次序,也就是说二叉树的结点次序不是相对于另一结点而言而是确定的。

6.3 试分别画出具有3个结点的树和3个结点的二叉树的所有不同形态。 答: 三个结点的树如下:只有两种形态 ○○ / \ | ○ ○○ | ○ 三个结点的二叉树如下所示:有五种形态: (1) (2) (3) (4) (5) ○○○○○ / \ / / \ \ ○○○○○○ / \ / \ ○○○○ 6.4 已知一棵度为m的树中有n1个度为1的结点,n2个度为2的结点,...n m个度为m的结点,问该树中有多少片叶子? 解: 设该树中的叶子数为n0个。该树中的总结点数为n个,则有: n=n0+n1+n2+…+n m (1) 又有除根结点外,树中其他结点都有双亲结点,且是唯一的(由树中的分支表示),所以,有双亲的结点数为: n-1=0*n0+1*n1+2*n2+…+m*n m (2) 联立(1)(2)方程组可得: 叶子数为:n0=1+0*n1+1*n2+2*n3+...+(m-1)*n m 6.5一个深度为h的满k叉树有如下性质:第h层上的结点都是叶子结点,其余各层上每个结点都有k棵非空子树。如果按层次顺序(同层自左至右)从1开始对全部结点编号,问: (1)各层的结点数目是多少? (2)编号为i的结点的双亲结点(若存在)的编号是多少?

第六章-树和二叉树-作业

第六章树和二叉树 一、应用题 1.已知完全二叉树的第七层有10个叶子结点,则整个二叉树的结点数最多是多少? 2.高度为10的二叉树,其结点最多可能为多少? 3.任意一个有n个结点的二叉树,已知它有m个叶子结点,试证明非叶子结点有(m-1)个度为2,其余度为1。 4. 已知A[1..N]是一棵顺序存储的完全二叉树,如何求出A[i]和A[j]的最近的共同祖先? 5.已知一棵满二叉树的结点个数为20到40之间的素数,此二叉树的叶子结点有多少个?

6.一棵共有n个结点的树,其中所有分支结点的度均为K,求该树中叶子结点的个数。 7.设T是具有n个内结点的扩充二叉树,I是它的内路径长度,E是它的外路径长度。试利用归纳法证明E=I+2n, n>=0. 8.试证明:同一棵二叉树的所有叶子结点,在前序序列、中序序列以及后序序列中都按相同的相对位置出现(即先后顺序相同),例如前序abc,后序bca,对称序bac。 9. 由二叉树的中序序列及前序序列能唯一的建立二叉树,试问中序序列及后序序列是否也能唯一的建立二叉树,不能则说明理由,若能对中序序列DBEAFGC 和后序序列DEBGFCA构造二叉树。

10. 由一棵二叉树的前序序列和中序序列可唯一确定这棵二叉树。设一棵二叉树的前序序列为ABDGECFH,中序序列为:DGBEAFHC 。试画出该二叉树。 二、算法设计题 1. 给出算法将二叉树表示的表达式二叉树按中缀表达式输出,并加上相应的括号。 2.编程求以孩子—兄弟表示法存储的森林的叶子结点数。

3.要求二叉树按二叉链表形式存储, (1)写一个建立二叉树的算法。 (2)写一个判别给定的二叉树是否是完全二叉树的算法。 完全二叉树定义为:深度为K,具有N个结点的二叉树的每个结点都与深度为K 的满二叉树中编号从1至N的结点一一对应。此题以此定义为准。 4.假设以双亲表示法作树的存储结构,写出双亲表示的类型说明,并编写求给定的树的深度的算法。(注:已知树中结点数)

数据结构第六章 树和二叉树课后习题答案

第六章课后习题 6、1、各层的结点数目是:K 2、编号为n的结点的双亲结点是:<=(n-2)/k的最大整数 3、编号为n的结点的第i个孩子结点编号是:k*(n-1)+1+i 4、编号为n的结点有右兄弟的条件是:(n-1)能被k整除 右兄弟的编号是:n+1. 7、1、先序序列和中序序列相同:空二叉树或没有左子树的二叉树。 2、中序序列和后序序列相同:空二叉树或没有右子树的二叉树。 3、先序序列和后序序列相同:空二叉树或只有根的二叉树。 9、中序序列:BDCEAFHG和后序序列:DECBHGFA的二叉树为: A B F C G D E H 先序序列:ABCDEFGH 算法设计: 3、typedef struct { int data[100]; int top; }seqstack; seqstack *s; Perorder(char a[],int n) { int i=1,count=1; s->top=-1;

if(n==0)return(0); else { if(I<=n) { s->top++; s->data[s->top]=a[I]; } while(countdata[s->top]); count++; s->top--; if(s->data[s->top]);==a[i]) { printf(“%c”,s->data[s->top]); count++; s->top--; } if((2*i+1)top++; s->data[s->top]=a[i+1]; s->top++; s->data[s->top]=a[i]; } else if(a*itop++; s->data[s->top]=a[i]; } else if(i/2%2==1)i=i/2/2+1; else i=i/2+1; } } } main() { char A[]=“kognwyuvb”; int n=strlen(A); s=(seqstack *)malloc(sizeof(seqstack)); printf(“\n”); Perorder(A,n);

树和二叉树作业

第6章树和二叉树 1.选择题 (1)把一棵树转换为二叉树后,这棵二叉树的形态是()。 A.唯一的B.有多种 C.有多种,但根结点都没有左孩子D.有多种,但根结点都没有右孩子 (2)由3 个结点可以构造出多少种不同的二叉树?() A.2 B.3 C.4 D.5 (3)一棵完全二叉树上有1001个结点,其中叶子结点的个数是()。 A.250 B. 500 C.254 D.501 (4)一个具有1025个结点的二叉树的高h为()。 A.11 B.10 C.11至1025之间 D.10至1024之间(5)深度为h的满m叉树的第k层有()个结点。(1=

相关主题