第六章习题
1.试分别画出具有3个结点的树和3个结点的二叉树的所有不同形态。
2.对题1所得各种形态的二叉树,分别写出前序、中序和后序遍历的序列。
3.已知一棵度为k的树中有n1个度为1的结点,n2个度为2的结点,……,nk个度为k的结点,则该树中有多少个叶子结点并证明之。
4.假设一棵二叉树的先序序列为EBADCFHGIKJ,中序序列为ABCDEFGHIJK,请画出该二叉树。
5.已知二叉树有50个叶子结点,则该二叉树的总结点数至少应有多少个?
6.给出满足下列条件的所有二叉树:
    前序和后序相同
    中序和后序相同
    前序和后序相同
7. n个结点的K叉树,若用具有k个child域的等长链结点存储树的一个结点,则空的Child域有多少个?
8.画出与下列已知序列对应的树T:
树的先根次序访问序列为GFKDAIEBCHJ;
树的后根次序访问序列为DIAEKFCJHBG。
9.假设用于通讯的电文仅由8个字母组成,字母在电文中出现的频率分别为:
0.07,0.19,0.02,0.06,0.32,0.03,0.21,0.10
请为这8个字母设计哈夫曼编码。
10.已知二叉树采用二叉链表存放,要求返回二叉树T的后序序列中的第一个结点指针,是否可不用递归且不用栈来完成?请简述原因.
11. 画出和下列树对应的二叉树:
12.已知二叉树按照二叉链表方式存储,编写算法,计算二叉树中叶子结点的数目。
13.编写递归算法:对于二叉树中每一个元素值为x的结点,删去以它为根的子树,并释放相应的空间。
14.分别写函数完成:在先序线索二叉树T中,查给定结点*p在先序序列中的后继。在后序线索二叉树T中,查给定结点*p在后序序列中的前驱。
15.分别写出算法,实现在中序线索二叉树中查给定结点*p在中序序列中的前驱与后继。
16.编写算法,对一棵以孩子-兄弟链表表示的树统计其叶子的个数。
17.对以孩子-兄弟链表表示的树编写计算树的深度的算法。
18.已知二叉树按照二叉链表方式存储,利用栈的基本操作写出后序遍历非递归的算法。
19.设二叉树按二叉链表存放,写算法判别一棵二叉树是否是一棵正则二叉树。正则二叉树是指:在二叉树中不存在子树个数为1的结点。
20.计算二叉树最大宽度的算法。二叉树的最大宽度是指:二叉树所有层中结点个数的最大值。
21.已知二叉树按照二叉链表方式存储,利用栈的基本操作写出先序遍历非递归形式的算法。
22. 证明:给定一棵二叉树的前序序列与中序序列,可唯一确定这棵二叉树;
     给定一棵二叉树的后序序列与中序序列,可唯一确定这棵二叉树;
23. 二叉树按照二叉链表方式存储,编写算法,计算二叉树中叶子结点的数目。
24. 二叉树按照二叉链表方式存储,编写算法,将二叉树左右子树进行交换。
 
实习题
1.        [问题描述] 建立一棵用二叉链表方式存储的二叉树,并对其进行遍历(先序、中序和后序),打印输出遍历结果。
[基本要求] 从键盘接受输入先序序列,以二叉链表作为存储结构,建立二叉树(以先序来建立)并对其进行遍历(先序、中序、后序),然后将遍历结果打印输出。要求采用递归和非递归两种方法实现。
[测试数据] ABCффDEфGффFффф(其中ф表示空格字符)
          输出结果为: 先序:ABCDEGF
                       中序:CBEGDFA
                      后序:CGBFDBA
2.已知二叉树按照二叉链表方式存储,编写算法,要求实现二叉树的竖向显示(竖向显示就是二叉树的按层显示)。
3.如题1要求建立好二叉树,按凹入表形式打印二叉树结构,如下图所示。
2.        按凹入表形式打印树形结构,如下图所示。 
               
第六章答案
 
6. 1分别画出具有3个结点的树和3个结点的二叉树的所有不同形态。
【解答】
具有3个结点的树          具有3个结点的二叉树     
先序中序后序遍历二叉树
6.3已知一棵度为k的树中有n1个度为1的结点,n2个度为2的结点,……nk个度为k的结点,则该树中有多少个叶子结点?
【解答】设树中结点总数为n,n=n0 + n1 + …… + nk
树中分支数目为B,B=n1 + 2n2 + 3n3 + …… + knk
因为除根结点外,每个结点均对应一个进入它的分支,所以有n= B + 1
n0 + n1 + …… + nk = n1 + 2n2 + 3n3 + …… + knk + 1
由上式可得叶子结点数为:n0 = n2 + 2n3 + …… + (k-1)nk + 1
6.5已知二叉树有50个叶子结点,则该二叉树的总结点数至少应有多少个?
【解答】n0表示叶子结点数,n2表示度为2的结点数,则n0 = n2+1
    所以n2= n0 –1=49,当二叉树中没有度为1的结点时,总结点数n=n0+n2=99 

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。