(5)已知一个二分树的中序序列和后序序列如下:
中序:A B C D E F G H I J 后序:A C D B H J I G F E 试画出此二分树的结构。 【首都经贸大学 1998 二、1 (10分)】
52.假设一棵二叉树的层次序列为ABCDEFGHIJ,中序序列DBGEHJACIF。请画出这棵二叉树。
【武汉大学 2000 三、1】【东南大学 2000 一、1 (6分)】
类似本题的另外叙述有: (1)假设一棵二叉树的层次次序(按层次递增顺序排列,同一层次自左向右)为ABECFGDHI,中序序
列为BCDAFEHIG。请画出该二叉树,并将其转换为对应的森林。【山东大学 2001 四、 (6分)】
53. 已知一个森林的先序序列和后序序列如下,请构造出该森林。 先序序列:ABCDEFGHIJKLMNO
后序序列:CDEBFHIJGAMLONK 【合肥工业大学 2000 四、1 (5分)】 54. 画出同时满足下列两条件的两棵不同的二叉树。 (1)按先根序遍历二叉树顺序为ABCDE。 (2)高度为5其对应的树(森林)的高度最大为4。【东北大学 1997 一、3 (5分)】
55.用一维数组存放的一棵完全二叉树;ABCDEFGHIJKL。请写出后序遍历该二叉树的访问结点序列。 【西安电子科技大学1999计应用 一、6 (5分)】
56.一棵二叉树的先序、中序、后序序列如下,其中一部分未标出,请构造出该二叉树。 先序序列 :_ _ C D E _ G H I _ K 中序序列 :C B _ _ F A _ J K I G
后序序列 :_ E F D B _ J I H _ A 【厦门大学 2002 七、1 (6分)】
类似本题的另外叙述有: (1)一棵二叉树的先序、中序和后序序列分别如下,其中有一部分为显示出来。试求出空格处的内容,并画出该二叉树。
先序序列: _ B F I C E H G 中序序列:D K F I A E J C
后序序列: K F B H J G A 【西安电子科技大学2000计应用 五、2 (5分)】 (2)已知一棵二叉树的先序 中序和后序序列如下,其中空缺了部分,请画出该二叉树。 先序:_ B C _ E F G _ I J K _ 中序:C B E D _ G A J _ H _ L
后序:_ E _ F D _ J _ L _ H A 【合肥工业大学 2001 四、1 (5分)】
(3)已知含有8个结点的一棵二叉树,按先序、中序、后序进行遍历后,有些结点序号不清楚如下图示。要求构造出一棵符合条件的二叉树。 先根序遍历 _ 2 3 _ 5 _ 7 8 中根序遍历 3 _ 4 1 _ 7 8 6
后根序遍历 _ 4 2 _ _ 6 5 1 【东北大学 1996 一、3 (5分)】
57.M 叉树的前序和后序遍历分别与由它转换成的二叉树的哪种遍历相对应?
【中国人民大学 2000 一、2 (4分)】
58.证明:在二叉树的三种遍历序列中,所有叶子结点间的先后关系都是相同的。要求每步论断都指出根据。【北京工业大学 2001 二、3 (5分)】
59. 下表中M﹑N分别是一棵二叉树中的两个结点,表中行号i=1,2,3,4分别表示四种M﹑N的相对关系,列号j=1,2,3分别表示在前序、 中序、后序遍历中M,N之间的先后次序关系。要求在i,j所表示的关系能够发生的方格内打上对号。例如:如果你认为n是m的祖先,并且在中序遍历中n能比m先被访问,则在(3,2)格内打上对号 先根遍历时n先被访问 中根遍历时n先被访问 后根遍历时n先被访问 N在M的左边 N在M的右边 N是M的祖先 N是M的子孙 【南京理工大学 2001 四、 (10分)】 60.用一维数组存放的一棵完全二叉树如下图所示:
A B C D E F G H I J K L 写出后序遍历该二叉树时访问结点的顺序。 【北京工业大学 1996 一、4 (6分)】
61.设树形T在后根次序下的结点排列和各结点相应的次数如下:
后根次序:BDEFCGJKILHA 次 数:000030002024
请画出T的树形结构图。 【吉林大学 2001 一、2 (4分)】
62.已知二叉树采用二叉链表方式存放,要求返回二叉树T的后序序列中的第一个结点的指针,是否可不用递归且不用栈来完成?请简述原因。 【西北大学 2001 三 6】
63.对于二叉树T的两个结点n1和n2,我们应该选择树T结点的前序、中序和后序中哪两个序列来判断结点n1必定是结点n2的祖先,并给出判断的方法。不需证明判断方法的正确性。
【复旦大学 1999 五 (10分)】
64.设二叉树的存储结构如下(每题5分,共15分)
LINK 0 0 2 3 7 5 8 0 10 1 INFO J H F D B A C E G I RLINK 0 0 0 9 4 0 0 0 0 0 其中,T为树根结点的指针,LLINK、RLINK分别指向结点的左右子女,INFO为其数据域,请完成下列各题:
(1)画出二叉树T的逻辑结构. (2)写出按前序、中序和后序周游二叉树T得到的结点序列. (3)画出二叉树T的后序线索树。 【山东工业大学 1995 六、(15分)】
65.在二叉树的前序遍历和中序遍历的递归算法中,最后一个递归调用语句在调用时所保留的参数有什么作用?如何清除最后这个递归语句? 【北京邮电大学 1994 三、 (8分)】 66.在二叉树的Llink-Rlink存储表示中,引入“线索”的好处是什么?
【山东大学 1999 六、1(2分)】
67.按下面要求解下图中二叉树的有关问题:
(1)对此二叉树进行后序后继线索化 ;(2)将此二叉树变换为森林; (3)用后根序遍历该森林,;写出遍历后的结点序列。【北京邮电大学 1996 五、 (10分)】
类似本题的另外叙述有: (1)已知一棵二叉树的先序遍历序列为:AEFBGCDHIKJ,中序遍历序列为:EFAGBCHKIJD。试写出此二叉树的后序遍历序列,并用图画出它的后序线索二叉树。【同济大学 2000 一、 (10分)】 68.对下图所示二叉树分别按前序﹑中序﹑后序遍历, A 给出相应的结点序列,同时给二叉树加上中序线索。
E 【青岛海洋大学 1999年 一、1 (5分)】 B C D I J F K G L H O P 第67题图
69. 假设一个二叉树的两种遍历如下:
前序:ABFGCHDEIJLK 中序:FGBHCDILJKEA (1)画出这棵二叉树以及它的中序线索树;
(2)写出在中序线索树的情况下,找到结点N的前驱结点的算法INORDER-PRIOR(N,X) 【上海海运学院 1996 四、 (10分)】 70.已知一棵二叉树的中序(或中根)遍历结点排列为DGBAECHIF,后序(或后根)遍历结点排列为GDBEIHFCA,
(1)试画出该二叉树;
(2)试画出该二叉树的中序穿线(或线索)树; (3)试画出该二叉树(自然)对应的森林;【吉林大学 2000 一、1 (5分)】 71.设二叉树BT的存储结构如下:
M N 1 2 3 4 5 6 7 8 9 10 Lchild 0 0 2 3 7 5 8 0 10 1 Data J H F D B A C E G I Rchild 0 0 0 9 4 0 0 0 0 0 其中BT为树根结点的指针,其值为6,Lchild,Rchild分别为结点的左、右孩子指针域,data为结点的数据域。试完成下列各题:
(l)画出二叉树BT的逻辑结构;
(2)写出按前序、中序、后序遍历该二叉树所得到的结点序列; (3)画出二叉树的后序线索树。【中国矿业大学 2000 二、 (15分)】
72.请说明是否存在这样的二叉树,即它可以实现后序线索树进行后序遍历时不使用栈;而对前序线索树进行前序遍历时,又有什么样的二叉树可不使用栈。【西安电子科技大学 1996 二、1 (5分)】 73.一棵左右子树均不空的二叉树在先序线索化后,其空指针域数为多少?
【西安电子科技大学 2000计应用 一、2 (5分)】 74.在前序线索树上,要找出结点p的直接后继结点,请写出相关浯句。结点结构为(ltag,lc,data,rtag,rc)。【西北大学 2000 二、6 (5分)】
75.对于后序线索二叉树,怎样查找任意结点的直接后继;对于中序线索二叉树,怎样查找任意结点的直接前驱?【西北工业大学 1998 一、4 (4分)】
76.将下列树的孩子—兄弟链表改为后根遍历全线索链表。【清华大学 1994 二、 (10分)】 Data A B C D E F G H I J K Ltag 0 0 0 0 0 0 0 0 0 0 0 Fch 2 0 5 7 8 0 11 0 0 0 0 Rtag 0 0 0 0 0 0 0 0 0 0 0 Nsib 0 3 4 0 6 0 0 9 10 0 0 77. 已知一棵二叉树的前序遍历为ABECDFGHIJ,中序遍历为EBCDAFHIGJ。试画出这棵树和它的中序线索树。假定用于通讯的电文仅有8个字母C1,C2,?,C8组成,各个字母在电文中出现的频率分别为5,25,3,6,10,11,36,4,试为这8个字母设计哈夫曼编码树。【上海海运学院1998四(10分)】
78.设有正文AADBAACACCDACACAAD,字符集为A,B,C,D,设计一套二进制编码,使得上述正文的编码最短。
【首都经贸大学 1997 一、5 (4分)】
类似本题的另外叙述有: (1)设有正文MNOPPPOPMMPOPOPPOPNP,字符集为M,N,O,P,设计一套二进制编码,使得上述正文的编码最短。【首都经贸大学 1998 一、5 (4分)】 79.给定集合{15,3,14,2,6,9,16,17}
(1)(3分)用□表示外部结点,用○表示内部结点,构造相应的huffman树: (2) (2分)计算它的带权路径长度: (3)(3分)写出它的huffman编码:
(4)(3分)huffman编码常用来译码,请用语言叙述写出其译码的过程。 【山东大学 1998 七、】【山东工业大学 2000 七、 (11分)】
类似本题的另外叙述有: (1) 如果通信字符a,b,c,d出现频度分别为:7,5,2,4请画出哈夫曼树并给出相应的哈夫曼编码。【青岛大学 2001 七、1 (5分)】
(2)给定一组数列(15,8,10,21,6,19,3)分别代表字符A,B,C,D,E,F,G出现的频度,试叙述建立哈夫曼树的算法思想,画出哈夫曼树,给出各字符的编码值,并说明这种编码的优点。
【青岛大学 2000 七、 (10分)】
(3)设通信中出现5中字符A、B、C、D、E对应的频率为0.2,0.1,0.5,0.15,0.25构造哈夫曼树,并给出对应字符的编码。【青岛大学 2002 四、2 (10分)】
(4) 设A、B、C、D、E、F六个字母出现的概率分别为7,19,2,6,32,3。试写出为这六个字母设计的HUFFMAN编码, 并画出对应的HUFFMAN树.【山东工业大学 1995 四(10分)】
(5)设用于通信的电文由8个字母组成, 字母在电文中出现的频率分别为:7,19,2,6,32,3,21,10。试为这8个字母设计哈夫曼编码.使用0-7的二进制表示形式是另一种编码方案,试比较这两种方案的优缺点。【南京航空航天大学 1999 四、 (10分)】
(6)假设用于通讯的电文由8个字符组成,其出现的频率为5,29,7,8,14,23,3,11。试为这8个字符设计哈夫曼编码。【燕山大学 1999 五、 (5分)】
(7)假设用于通信的电文由字符集{a,b,c,d,e,f,g}中的字母构成。它们在电文中出现的频度分别为{0.31,0.16,0.10,0.08,0.11,,0.20,0.04},
1) 为这7个字母设计哈夫曼编码;
2)对这7个字母进行等长编码,至少需要几位二进制数?哈夫曼编码比等长编码使电文总长压缩多少?【北京邮电大学 2001 四、2 (5分)】
(8)试构造一棵二叉树,包含权为1,4,9,16,25,36,49,64,81,100等10个终端结点,且具有最小的加权路径长度WPL。【北方交通大学 1993年 五(12分)】
(9)带权结点为{5,6,7,8,9},构造Huffman树,计算带权路径长度。【西北大学2001年三、3】 (10)以数据集{2,5,7,9,13}为权值构造一棵哈夫曼树,并计算其带权路径长度。
【西安电子科技大学1999计应用 一、4 (5分)】 (11)假设用于通讯的电文仅由8个字母组成,字母在电文中出现的频率分别为7,19,2,6,32,3,21,10。试为这8个字母设计哈夫曼编码。使用0∽7的二进制表示形式是另一 种编码方案。对于上述实例,比较两种方案的优缺点。【大连海事大学 1996 五、2 (8分)】。
(12)设用于通讯的电文仅由8个字母组成,他们在电文中出现的频率分别为0.30,0.07,0.10,0.03,0.20,0.06,0.22,0.02,试设计哈夫曼树及其编码。使用0---7的二进制表示形式是另一种编码方案。给出两种编码的对照表、带权路径长度WPL值并比较两种方案的优缺点。【厦门大学 1999 三、3】
(13) 给定一组权值2,3,5,7,11,13,17,19,23,29,31,37,41,试画出用Huffman算法建造的Huffman树。【吉林大学 2000 一、2 (4分)】
(14) 以数据集{3,4,5,8,12,18,20,30}为叶结点,构造一棵哈夫曼树,并求其带权路径长度。【山东师范大学 1996 五 5(2分)】 80. 给定权W1,W2,?,Wm 。说明怎样来构造一个具有最小的加权路径长度的k叉树。试对于权1,4,9,16,25, 36,49,64,81,100来构造最优的三叉树,并给出其最小加权路径长度。【北方交通大学1994年 四(12分)】 81.已知下列字符A、B、C、D、E、F、G的权值分别为3、12、7、4、2、8,11,试填写出其对应哈夫曼树HT的存储结构的初态和终态。【北京工业大学 1998 五、 (10分)】 82.什么是前缀编码?举例说明如何利用二叉树来设计二进制的前缀编码。【中山大学1999三、1 (3分)】 83.如果一棵huffman树T有n0个叶子结点,那么,树T有多少个结点,要求给出求解过程。
【复旦大学 1999 四、 (10分)】
84.设T是一棵二叉树,除叶子结点外,其它结点的度数皆为2,若 T中有6个叶结点,试问:
(1)T树的最大深度Kmax=?最小可能深度Kmin=? (2)T树中共有多少非叶结点?
(3) 若叶结点的权值分别为1,2,3,4,5,6。请构造一棵哈曼夫树,并计算该哈曼夫树的带权路径长度wpl。【北京邮电大学 1992 一、3】 85.对如下算法,解答下列问题。
PROCEDURE inorder(T:bitree); BEGIN top:=1; s[top]:=T; REPEAT
WHILE s[top]<>NIL DO BEGIN s[top+1]:=s[top]^.lchild; top:=top+1; END;
IF top>1 THEN BEGIN top:=top-1;WRITE (s[top]^.data);s[top]:=s[top]^.rchild;END; UNTIL top=0 END;
(1)该算法正确吗?循环结束条件top=0能否满足? (2)若将IF top>1?改为IF top>0?是否正确? (3)若将结束条件改为top=1,其它不变,是否正确?
(4)若仅将结束处条件改为(top=1)AND (s[top]=NIL),是否正确?
(5)试找出二叉树中各结点在栈中所处层次的规律。 【西安电子科技大学2000计应用 三(10分)】
五、算法设计题
1.假设一个仅包含二元运算符的算术表达式以链表形式存储在二叉树BT中,写出计算该算术表达式值的算法。【东北大学 2000 三、2 (10分)】
+ /
a * e f
b - c d
其中t为根结点指针,试运用后序遍历二叉树的规则,写出对表达式求值的算法:EXPVALUE
【北京科技大学 1998年 八、1 (10分)】
4.编程求以孩子—兄弟表示法存储的森林的叶子结点数。要求描述结构。【北京工业大学2000五(10分)】
5.假定用两个一维数组L[N]和R[N]作为有N个结点1,2,?, N的二元树的存储结构。L[i]和R[i]分别指示结点 i的左儿子和右儿子;L[i]=0(R[i]=0)表示i的左(右)儿子为空。试写一个算法,由L和R建立一个一维数组T[n],使T[i]存放结点i的父亲;然后再写一个判别结点U是否为结点V的后代的算法。【哈尔滨工业大学 1999 七 (14分)】 类似本题的另外叙述有:
(1)假定用两个一维数组L[1..n]和R[1..n]作为有n个结点的二叉树的存储结构,L[i]和R[i]分别指示结点i的左孩子和右孩子,0表示空。写一算法,建立一维数组T[1..n],使T中第i(i=1,2,...,n)个分量指示结点i的双亲,然后判别结点u是否为v的子孙的算法。【华南师范大学2000 六(17分)】
6.要求二叉树按二叉链表形式存储,
(1)写一个建立二叉树的算法。(2)写一个判别给定的二叉树是否是完全二叉树的算法。
完全二叉树定义为:深度为K,具有N个结点的二叉树的每个结点都与深度为K的满二叉树中编号从1至N的结点一一对应。此题以此定义为准。【西北大学 2000 六 (12分)】
类似本题的另外叙述有:
(1)试写一算法判断某二叉树是否是完全二叉树。【青岛海洋大学 1999 六(15分)】 (2)编程,判断一棵二叉链表表示的二叉树是否是完全二叉树。【南京航空航天大学2001十(10分)】 (3)编写算法判断一棵二叉树BT是否是完全二叉树。【北方交通大学 1997 八 (20分)】 (4)假设二元树用左右链表示,试编写一算法,判别给定二元树是否为完全二元树?
【哈尔滨工业大学 2000 十一 (14分)】
(5)设二叉树以二叉链表为存储结构,试给出判断一棵二叉树是否为满二叉树的算法,用类pascal语言写为函数形式。【南开大学 1997 四 (16分)】 (6)试写一算法判别某二叉树是否是完全二叉树。【北京邮电大学 1994 九 (20分)】
7.有n个结点的完全二叉树存放在一维数组A[1..n]中,试据此建立一棵用二叉链表表示的二叉树 ,根由tree指向。 【南京理工大学 1998 七、1 (6分)】
8.设任意非空二叉树中结点按层次顺序依次编号为1,2,?,n(n>0),其存储结构采用下图所示形式,其中i表示结点的编号, L(i)的值是i的左儿子的编号,R(i)的值是i的右儿子的编号。若L(i),R(i)的值为0,表示结点i无左儿子或右儿子。试设计算法:
2.给出算法将二叉树表示的表达式二叉树按中缀表达式输出,并加上相应的括号。 【北京邮电大学 2001 五、3 (10分)】 3.(此题统考生做) 用PASCAL语言(或类PASCAL语言)完成下列各题: (1)设表达式a+b*(c-d)-e/f 可以表示成如下二叉树结构: t
-