您现在的位置:学赛首页 > 自考学院 > 数据结构与算法 > 正文
第6章树(基础知识)习题练习
http://www.educity.cn 作者:不详 来源: 2006年9月4日 发表评论 进入社区

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) 树的度数是多少?

6.2 一棵度为2的有序树与一棵二叉树有何区别?

6.3 试分别画出具有3个结点的树和3个结点的二叉树的所有不同形态。

6.4 已知一棵度为m的树中有n1个度为1的结点,n2个度为2的结点,...nm个度为m的结点,问该树中有多少片叶子?

6.5 一个深度为h的满k叉树有如下性质:第h层上的结点都是叶子结点,其余各层上每个结点都有k棵非空子树。如果按层次顺序(同层自左至右)从1开始对全部结点编号,问:
 (1)各层的结点数目是多少?
 (2)编号为i的结点的双亲结点(若存在)的编号是多少?
 (3)编号为i的结点的第j个孩子结点(若存在)的编号是多少?
 (4)编号为i的结点的有右兄弟的条件是什么? 其右兄弟的编号是多少?

6.6 高度为h的完全二叉树至少有多少个结点?至多有多少个结点?

6.7 在具有n个结点的k叉树(k>=2)的k叉链表表示中,有多少个空指针?

6.8 假设二叉树包含的结点数据为1,3,7,12。
 (1)画出两棵高度最大的二叉树;
 (2)画出两棵完全二叉树,要求每个双亲结点的值大于其孩子结点的值。

6.9 试找出分别满足下面条件的所有二叉树:
 (1)前序序列和中序序列相同; (2)中序序列和后序序列相同;
 (3)前序序列和后序序列相同; (4)前序、中序、后序序列均相同。

6.10 试采用顺序存储方法和链接存储方法分别画出6.30(下图)所示各二叉树的存储结构。

6.11 分别写出图6.30(下图)所示各二叉树的前序、中序和后序序列。

   

6.12 若二叉树中各结点的值均不相同,则由二叉树的前序序列和中序序列,或由其后序序列和中序序列均能唯一地确定一棵二叉树,但由前序序列和后序序列却不一定能唯一地确定一棵二叉树。
 (1)已知一棵二叉树的前序序列和中序序列分别为ABDGHCEFI和GDHBAECIF,请画出此二叉树。
 (2)已知一棵二叉树的在序序列和后序序列分别为BDCEAFHG和DECBHGFA,请画出此二叉树。
 (3)已知一棵二叉树的前序序列和后序序列分别为AB和BA,请画出这两棵不同的二叉树。

6.13 对二叉树中的结点进行按层次顺序(每一层自左至右)的访问操作称为二叉树的层次遍历,遍历所得到的结点序列称为二叉树层次序列。现已知一棵二叉树的层次序列为ABCDEFGHIJ,中序序列为DBGEHJACIF,请画出此二叉树。

6.14 试画出图6.30(上图)所示各二叉树的前序、中序和后序线索树及相应的线索链表。 

6.15 在何种线索树中,线索对求指定结点在相应次序下的前趋和后继并无帮助?

6.16 对图6.31(下图)所示的森林:

  

 (1)求各树的前序序列和后序序列;
 (2)求森林的前序序列和后序序列;
 (3)将此森林转换为相应的二叉树;
 (4)给出(a)所示树的以亲链表表示、孩子链表表示、双亲孩子链表表示及孩子兄弟链表示等四种存储结构,并指出哪些存储结构易于求指定结点的祖先,哪些易于求指定结点的后代?

6.17 画出图6.32(下图)所示的各二叉树所对应的森林。

   

6.18 高度为h的严格二叉树至少有多少个结点?至多有多少个结点? 

6.19 在什么样的情况下,等长编码是最优的前缀码?

6.20 下述编码哪一组不是前缀码?
  {00,01,10,11},{0,1,00,11},{0,10,110,111}

6.21 假设用于通信的电文由字符集{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}.
 (1)为这8个字母设计哈夫曼编码。
 (2)若用这三位二进制数(0…7)对这8个字母进行等长编码,则哈夫曼编码的平均码长是等长编码的百分之几?它使电文总长平均压缩多少?