数组广义表答案及二叉树习题及答案
第四、五章串、数组和广义表练习题答案

第四、五章串、数组和广义表练习题答案一.填空题1. 不包括任何字符(长度为0)的串称为空串;由一个或多个空格(仅由空格符)组成的串称为空白串。
2. 设S=“A;/document/”,那么strlen(s)= 20 , “/”的字符定位的位置为3。
3. 子串的定位运算称为串的模式匹配;被匹配的主串称为目标串,子串称为模式。
4. 设目标T=”abccdcdccbaa”,模式P=“cdcc”,那么第 6 次匹配成功。
5. 假设n为主串长,m为子串长,那么串的古典(朴素)匹配算法最坏的情形下需要比较字符的总次数为(n-m+1)*m。
6. 假设有二维数组A6×8,每一个元素用相邻的6个字节存储,存储器按字节编址。
已知A的起始存储位置(基地址)为1000,那么数组A的体积(存储量)为 288 B ;末尾元素A57的第一个字节地址为 1282 ;假设按行存储时,元素A14的第一个字节地址为(8+4)×6+1000=1072 ;假设按列存储时,元素A47的第一个字节地址为 (6×7+4)×6+1000)=1276 。
(注:数组是从0行0列仍是从1行1列计算起呢?由末单元为A57可知,是从0行0列开始!)7. 〖00年运算机系考研题〗设数组a[1…60, 1…70]的基地址为2048,每一个元素占2个存储单元,假设以列序为主序顺序存储,那么元素a[32,58]的存储地址为8950 。
答:不考虑0行0列,利用列优先公式:LOC(a ij)=LOC(a c1,c2)+[(j-c2)*(d1-c1+1)+i-c1)]*L得:LOC(a32,58)=2048+[(58-1)*(60-1+1)+32-1]]*2=89508. 三元素组表中的每一个结点对应于稀疏矩阵的一个非零元素,它包括有三个数据项,别离表示该元素的行下标、列下标和元素值。
9.求以下广义表操作的结果:(1)GetHead【((a,b),(c,d))】=== (a, b) ; u=;(*b).nu=;(*b).tu=;if{ q=1;for(col=1; __ col<=, ________;col++)for(p=1;p<=;p++)if[p].j ==col){(*b).data[q].i=[p].j;(*b).data[q].j=[p].i;(*b).data[q].v=[p].v;__q++_________;}}23.基于三元组的稀疏矩阵转置的处置方式有两种,以下计算依照矩阵A的三元组的顺序进行转置,请在___________处用适当的句子用以填充。
二叉树练习题及答案

一、选择题1.关于二叉树的下列说法正确的是(B )A.二叉树的度为2 B.二叉树的度可以小于2C.每一个结点的度都为2 D .至少有一个结点的度为2 2.在树中,若结点A有4个兄弟,而且B是A的双亲,则B的度为(C )A.3 B.4C.5 D .63.若一棵完全二叉树中某结点无左孩子,则该结点一定是(D )A.度为1的结点B.度为2的结点C.分支结点 D .叶子结点4.深度为k的完全二叉树至多有(C )个结点,至少有( B )个结点。
A.2k-1-1 B.2k-1C.2k-1 D .2k5.在具有200个结点的完全二叉树中,设根结点的层次编号为1,则层次编号为60的结点,其左孩子结点的层次编号为( C 2i ),右孩子结点的层次编号为( D 2i+1),双亲结点的层次编号为(60/2=30 A )。
A.30 B.60C.120 D .1216.一棵具有124个叶子结点的完全二叉树,最多有(B )个结点。
A.247 B.248C.249 D .250二、填空题1.树中任意结点允许有零个或多个孩子结点,除根结点外,其余结点有且仅有一个双亲结点。
2.若一棵树的广义表表示法为A(B(E,F),C(G(H,I,J,K),L),D(M (N))),则该树的度为 4 ,树的深度为 4 ,树中叶子结点的个数为8 。
3.若树T中度为1、2、3、4的结点个数分别为4、3、2、2,则T中叶子结点的个数为14 。
n=n0+n1+n2+n3+n4=n0+4+3+2+2=n0+11n=1+孩子=1+4+6+6+8+25n0+11=25n0=144.一棵具有n个结点的二叉树,若它有m个叶子结点,则该二叉树中度为1的结点个数是n-2m+1 。
5.深度为k(k>0)的二叉树至多有2k -1 个结点,第i层上至多有2i-1个结点。
6.已知二叉树有52个叶子结点,度为1的结点个数为30,则总结点个数为133 。
7.已知二叉树中有30个叶子结点,则二叉树的总结点个数至少是30+29+0=59 。
第8章 数组和广义表

第8章数组和广义表[能力要求](1)计算机基础知识:掌握线性表的概念以及顺序表和链表的基本操作。
(2)分析问题:针对具体的问题,要能够运用线性表去进行分析,逐步找到解决问题的方法。
(3)具有概念化和抽象化能力:针对具体的应用和实际的问题,能够运用线性表对问题进行抽象,提取它的逻辑结构和存储结构。
(4)发现问题和表述问题:在具体的工程中,能够发现工程中涉及到顺序表和链表的问题,并能够明确表述。
(5)建模:在具体的工程中,能够使用线性表进行建模,设计合理的数据结构和相应的算法。
(6)解决方法和建议:在具体工程应用中,发现了关于线性表的问题,要能够解决问题,并提出合理的建议。
(7)定义功能、概念和结构:使用线性表这种逻辑结构处理一些具体问题,实现系统的功能。
(8)设计过程的分段与方法:采取不同的阶段去设计(概念设计、详细设计)一个具体的线性表的应用项目。
(9)软件实现过程:了解系统中各个模块中的关于线性表的设计;讨论算法(数据结构、控制流程、数据流程);使用编程语言实施底层设计(编程)。
8.1知识点:数组的定义和顺序存储一、选择题1①常对数组进行的两种基本操作是()。
A.建立与删除 B.索引和修改C.对数据元素的存取和修改D.查找与索引2①下面说法中,不正确的是()。
A.数组是一种线性结构B.数组是一种定长的线性表结构C.除了插入与删除操作外,数组的基本操作还有存取、修改、检索和排序等D.数组的基本操作有存取、修改、检索和排序等,没有插入与删除操作3②数组A中,每个元素的长度为3个字节,行下标I从1到8,列下标J从1到10,从首地址SA开始连续存放在存储器内,该数组占用的字节数为()。
A.80 B.100 C.240 D.2704②在二维数组A[9][10]中,每一个数组元素A[i][j] 占用3个存储空间,所有数组元素相继存放于一个连续的存储空间中,则存放该数组至少需要的存储空间是()。
A. 80 B.100 C.240 D.2705②设有一个n*n的对称矩阵A,将其下三角部分按行存放在一个一维数组B中,A[0][0]存放于B[0]中,那么第I行的对角元素A[I][I]存放于B中()处。
数据结构(树与二叉树)习题与答案

一、单选题1、已知一算术表达式的中缀形式为 A-B/C+D*E,前缀形式为+-A/BC*DE,其后缀形式为( )。
A.ABC/-DE*+B.AB/C-D*E+C. A-BC/DE*+D. ABCDE/-*+正确答案:A2、有关二叉树下列说法正确的是()。
A.二叉树中任何一个结点的度都为2B.一棵二叉树的度可以小于2C.二叉树中每个结点的度都为2D.二叉树中至少有一个结点的度为2正确答案:B3、在一棵高度为k的满二叉树中,结点总数为()。
A.2k-1B. 2k-1C. 2k-1+1D.2k正确答案:B4、某二叉树中有60个叶子结点,则该二叉树中度为2的结点个数为()。
A.不确定B.60C.59D.61正确答案:C解析:任意二叉树中,n0=n2+15、高度为7的完全二叉树,最少有()个结点。
A.127B.128C.63D.64正确答案:D解析:前6层都是满的,最后一层(第7层)近1个结点。
可保证题目条件。
6、高度为7的二叉树,最少有()个结点。
A.7B.127C.13D.64正确答案:A解析:每层只有1个结点。
共7个即可构成一个高度为7的二叉树。
7、对任意一棵有n个结点的树,这n个结点的度之和为( )。
A.n-1B.2*nC.n+2D.n正确答案:A解析:所有结点的度之和为分支个数,分支个数即为结点个数-18、在下列存储形式中,()不是树的存储形式。
A.双亲表示法B.孩子-兄弟表示法C.孩子链表表示法D.顺序存储表示法正确答案:D9、对二叉树中的结点进行编号,要求根结点的编号最小,左孩子结点编号比右孩子结点编号小。
则应该采用()遍历方法对其进行编号。
A.层次B.先序C.后序D.中序正确答案:B10、某二叉树中有60个叶子结点,则该二叉树中度为2的结点个数为()。
A. 59B.61C.60D.不一定正确答案:A11、树的后根遍历,相当于对应二叉树的()遍历。
A.中序B.后序C.层次D.先序正确答案:A二、判断题1、完全二叉树一定存在度为1的结点。
数据结构习题与答案--树和二叉树

第六章树和二叉树一、判断题( t )01、若二叉树用二叉链表作存贮结构,则在n个结点的二叉树链表中只有n—1个非空指针域。
( f )02、二叉树中每个结点的两棵子树的高度差等于1。
(t )03、二叉树中每个结点的两棵子树是有序的。
( f )04、二叉树中每个结点有两棵非空子树或有两棵空子树。
( f )05、二叉树中所有结点个数是2k-1-1,其中k是树的深度。
(f )06、二叉树中所有结点,如果不存在非空左子树,则不存在非空右子树。
( f )07、对于一棵非空二叉树,它的根结点作为第一层,则它的第i层上最多能有2i—1个结点。
(t )08、用二叉链表法存储包含n个结点的二叉树,结点的2n个指针区域中有n+1个为空指针。
(t)09、具有12个结点的完全二叉树有5个度为2的结点。
( f )10、二叉树中每个结点的关键字值大于其左非空子树(若存在的话)所有结点的关键字值,且小于其右非空子树(若存在的话)所有结点的关键字值。
( f )11、二叉树按某种顺序线索化后,任一结点均有指向其前驱和后续的线索。
( t )12、二叉树的先序遍历序列中,任意一个结点均处在其孩子结点的前面。
二、填空题01、由3个结点所构成的二叉树有_5_种形态。
02、一棵深度为6的满二叉树有____个分支结点和____个叶子。
03、一棵具有257个结点的完全二叉树,它的深度为____。
04、设一棵完全二叉树有700个结点,则共有____个叶子结点。
05、设一棵完全二叉树具有1000个结点,则此完全二叉树有____个叶子结点,有____个度为2的结点,有____个结点只有非空左子树,有____个结点只有非空右子树。
06、一棵含有n个结点的k叉树,可能达到的最大深度为____,最小深度为____。
07、二叉树的基本组成部分是:根(N)、左子树(L)和右子树(R)。
因而二叉树的遍历次序有六种。
最常用的是三种:前序法(即按N L R次序),后序法(即按LRN次序)和中序法(也称对称序法,即按L N R次序)。
《第5章 数组和广义表》习题解答

}
4.根据下标(script)修改数组元素的操作
操作int Assign(Array& A,int* script,EType e)的作用是,根据下标向量script修改数组A中相应元素的值为e。如果下标合理返回1表示修改成功,否则返回0表示操作失败。
int Assign(Array& A,int* script,EType e)
void Arrayoutput(Array A)
{int s[3],i,len=1;
switch(A.dim)
{
case 1://按一维数组格式输出
for(s[0]=0;s[0]<A.bounds[0];s[0]++) cout<<Value(A,s)<<" ";
cout<<endl;
break;
该存储结构以最右面的下标为主序,左下标优先变化,即下标变化顺序是从左到右。
以二维数组:
为例,其内存结构如图5.2(a)所示。
对于三维数组: (有2页、2行、3列),按右下标为主序的内存结构如图5.2(b)所示。
2.左下标为主序存储的n维数组中的元素a(j0,j1,...,jn-1)的地址计算公式
对于一个已经被定义的二维数组Ab0×b1=(a[i][j])b0×b1,只要给出该数组存放的起始地址LOC(a[0][0])、数组元素的行下标i和列下标j,以及每个元素所占用的存储单元(字节)数L,便可以求得元素a[i][j]在内存中的首地址LOC(a[i][j])。
int Value(Array A,int* script,EType &e)
数据结构二叉树习题含答案

第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=<k=<h)A.m k-1 B.m k-1 C.m h-1D.m h-1(6)利用二叉链表存储树,则根结点的右指针是()。
A.指向最左孩子B.指向最右孩子C.空D.非空(7)对二叉树的结点从1开始进行连续编号,要求每个结点的编号大于其左、右孩子的编号,同一结点的左右孩子中,其左孩子的编号小于其右孩子的编号,可采用()遍历实现编号。
A.先序 B. 中序 C. 后序 D. 从根开始按层次遍历(8)若二叉树采用二叉链表存储结构,要交换其所有分支结点左、右子树的位置,利用()遍历方法最合适。
A.前序B.中序C.后序D.按层次(9)在下列存储形式中,()不是树的存储形式…A.双亲表示法B.孩子链表表示法C.孩子兄弟表示法D.顺序存储表示法(10)一棵非空的二叉树的先序遍历序列与后序遍历序列正好相反,则该二叉树一定满足()。
A.所有的结点均无左孩子B.所有的结点均无右孩子C.只有一个叶子结点D.是任意一棵二叉树(11)某二叉树的前序序列和后序序列正好相反,则该二叉树一定是()的二叉树。
A.空或只有一个结点B.任一结点无左子树C.高度等于其结点数D.任一结点无右子树(12)若X是二叉中序线索树中一个有左孩子的结点,且X不为根,则X的前驱为()。
A.X的双亲B.X的右子树中最左的结点C.X的左子树中最右结点D.X的左子树中最右叶结点:(13)引入二叉线索树的目的是()。
第5章数组和广义表答案

第5章数组和广义表答案第 5 章数组和广义表一、选择1.设有一个10阶的对称矩阵A,采用压缩存储方式,以行序为主存储,a11为第一元素,其存储地址为1,每个元素占一个地址空间,则a85的地址为( B )。
A. 13B. 33C. 18D. 402. 设有数组A[i,j],数组的每个元素长度为3字节,i的值为1 到8 ,j的值为1 到10,数组从内存首地址BA开始顺序存放,当用以列为主存放时,元素A[5,8]的存储首地址为(B )。
A. BA+141B. BA+180C. BA+222D. BA+2253. 假设以行序为主序存储二维数组A=array[1..100,1..100],设每个数据元素占2个存储单元,基地址为10,则LOC[5,5]=( B )。
A. 808B. 818C. 1010D. 10204. 二维数组A的元素都是6个字符组成的串,行下标i的范围从0到8,列下标j的范围从0到9。
从供选择的答案中选出应填入下列关于数组存储叙述中()内的正确答案。
(1)存放A至少需要( E )个字节;(2)A的第8列和第5行共占( A )个字节;(3)若A按行存放,元素A[8,5]的起始地址与A按列存放时的元素( B )的起始地址一致。
供选择的答案:(1)A. 90 B. 180 C. 240 D. 270 E. 540(2)A. 108 B. 114 C. 54 D. 60 E. 150 (3)A. A[8,5] B. A[4,9]C. A[5,8]D. A[0,9]5. 若对n阶对称矩阵A以行序为主序方式将其下三角形的元素(包括主对角线上所有元素)依次存放于一维数组B[1..(n(n+1))/2]中,则在B中确定aij(i<="" b="" p="">A. i*(i-1)/2+jB. j*(j-1)/2+iC. i*(i+1)/2+jD. j*(j+1)/2+i6. A[N,N]是对称矩阵,将下面三角(包括对角线)以行序存储到一维数组T[N(N+1)/2]中,则对任一上三角元素a[i][j]对应T[k]的下标k是( B )。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
栈、队列、串、数组和广义表 习题 一、选择题 1 一个栈的输入序列为1 2 3 4 5,则下列序列中不可能是栈的输出序列的是( B )。 A. 2 3 4 1 5 B. 5 4 1 3 2 C. 2 3 1 4 5 D. 1 5 4 3 2 2若已知一个栈的入栈序列是1,2,3,…,n,其输出序列为p1,p2,p3,…,pN,若pN是n,则pi是( D )。 A. i B. n-i C. n-i+1 D. 不确定 3 若用一个大小为6的数组来实现循环队列,且当前rear和front的值分别为0和3,当从队列中删除一个元素,再加入两个元素后,rear和front的值分别为多少?( B ) A. 1和 5 B. 2和4 C. 4和2 D. 5和1 4 设栈S和队列Q的初始状态为空,元素e1,e2,e3,e4,e5和e6依次通过栈S,一个元素出栈后即进队列Q,若6个元素出队的序列是e2,e4,e3,e6,e5,e1则栈S的容量至少应该是( C )。 A. 6 B. 4 C. 3 D. 2 5 设有两个串p和q,其中q是p的子串,求q在p中首次出现的位置的算法称为( C ) A.求子串 B.联接 C.匹配 D.求串长 6 设有一个10阶的对称矩阵A,采用压缩存储方式,以行序为主存储,a11为第一元素,其存储地址为1,每个元素占一个地址空间,则a85的地址为( B )。 A. 13 B. 33 C. 18 D. 40 7 已知广义表LS=((a,b,c),(d,e,f)),运用head和tail函数取出LS中原子e的运算是( C )。 A. head(tail(LS)) B. tail(head(LS)) C. head(tail(head(tail(LS))) D. head(tail(tail(head(LS)))) 8 模式串t=‘abcaabbcabcaabdab’,该模式串的next数组的值为( D ),nextval数组的值为 ( F )。 A.0 1 1 1 2 2 1 1 1 2 3 4 5 6 7 1 2 B.0 1 1 1 2 1 2 1 1 2 3 4 5 6 1 1 2 C.0 1 1 1 0 0 1 3 1 0 1 1 0 0 7 0 1 D.0 1 1 1 2 2 3 1 1 2 3 4 5 6 7 1 2 E.0 1 1 0 0 1 1 1 0 1 1 0 0 1 7 0 1 F.0 1 1 0 2 1 3 1 0 1 1 0 2 1 7 0 1 二、填空题 1 在作进栈运算时应先判别栈是否_(1)满_;在作退栈运算时应先判别栈是否_(2)空_;当栈中元素为n个,作进栈运算时发生上溢,则说明该栈的最大容量为_(3)n_。 2 设循环队列存放在向量sq.data[0:M]中,则队头指针sq.front在循环意义下的出队操作可表示为__return(sq.data(sq.front));sq.front=(sq.front+1)%(M+1);_____,若用牺牲一个单元的办法来区分队满和队空(设队尾指针sq.rear),则队满的条件为_(sq.rear+1)%(M+1)==sq.front;_。 3 串是一种特殊的线性表,其特殊性表现在__(1) 其数据元素都是字符__;串的两种最基本的存储方式是__(2) 顺序存储__、__(3) 和链式存储__;两个串相等的充分必要条件是__(4) 串的长度相等且两串中对应位置的字符也相等__。 5 已知广义表A=(((a,b),(c),(d,e))),head(tail(tail(head(A))))的结果是_(d,e)_。
第5章 树
一、单项选择题 1.在一棵度为3的树中,度为3的结点数为2个,度为2的结点数为1个,度为1的结点数为2个,则度为0的结点数为( )个。 2.假设在一棵二叉树中,双分支结点数为15,单分支结点数为30个,则叶子结点数为( )个。 3.假定一棵三叉树的结点数为50,则它的最小高度为( )。 A.3 4.在一棵二叉树上第4层的结点数最多为( )。 5.用顺序存储的方法将完全二叉树中的所有结点逐层存放在数组中R[1..n],结点R[i]若有左孩子,其左孩子的编号为结点( )。 A. R[2i+1] B. R[2i]C. R[i/2] D. R[2i-1] 6.由权值分别为3,8,6,2,5的叶子结点生成一棵哈夫曼树,它的带权路径长度为( )。 7.线索二叉树是一种( )结构。 A. 逻辑 B. 逻辑和存储 C. 物理 D. 线性 8.线索二叉树中,结点p没有左子树的充要条件是( )。 A. p->lc=NULL B. p->ltag=1 C. p->ltag=1 且p->lc=NULL D. 以上都不对 9.设n ,m 为一棵二叉树上的两个结点,在中序遍历序列中n在m前的条件是( )。 A. n在m右方 B. n在m 左方 C. n是m的祖先 D. n是m的子孙 10.如果F是由有序树T转换而来的二叉树,那么T中结点的前序就是F中结点的( )。 A. 中序 B. 前序 C. 后序 D. 层次序 11.欲实现任意二叉树的后序遍历的非递归算法而不必使用栈,最佳方案是二叉树采用( )存储结构。 A. 三叉链表 B. 广义表 C. 二叉链表 D. 顺序 12.下面叙述正确的是( )。 A. 二叉树是特殊的树 B. 二叉树等价于度为2的树 C. 完全二叉树必为满二叉树 D. 二叉树的左右子树有次序之分 13.任何一棵二叉树的叶子结点在先序、中序和后序遍历序列中的相对次序( )。 A. 不发生改变 B. 发生改变 C. 不能确定 D. 以上都不对 14.已知一棵完全二叉树的结点总数为9个,则最后一层的结点数为( )。 A. 1B. 2C. 3D. 4 15.根据先序序列ABDC和中序序列DBAC确定对应的二叉树,该二叉树( )。 A. 是完全二叉树 B. 不是完全二叉树 C. 是满二叉树 D. 不是满二叉树
二、判断题 1.二叉树中每个结点的度不能超过2,所以二叉树是一种特殊的树。 ( ) 2.二叉树的前序遍历中,任意结点均处在其子女结点之前。 ( ) 3.线索二叉树是一种逻辑结构。 ( ) 4.哈夫曼树的总结点个数(多于1时)不能为偶数。 ( ) 5.由二叉树的先序序列和后序序列可以唯一确定一颗二叉树。 ( ) 6.树的后序遍历与其对应的二叉树的后序遍历序列相同。 ( ) 7.根据任意一种遍历序列即可唯一确定对应的二叉树。 ( ) 8.满二叉树也是完全二叉树。 ( ) 9.哈夫曼树一定是完全二叉树。 ( ) 10.树的子树是无序的。 ( )
三、填空题 1. 假定一棵树的广义表表示为A(B(E),C(F(H,I,J),G),D),则该树的度为__3___,树的深度为__4__,终端结点的个数为____6,单分支结点的个数为___1___,双分支结点的个数为_1_____,三分支结点的个数为_2______,C结点的双亲结点为_a______,其孩子结点为___f___和__g_____结点。 2. 设F是一个森林,B是由F转换得到的二叉树,F中有n个非终端结点,则B中右指针域为空的结点有_______个。 3. 对于一个有n个结点的二叉树,当它为一棵________二叉树时具有最小高度,即为_______,当它为一棵单支树具有_______高度,即为_______。 4. 由带权为3,9,6,2,5的5个叶子结点构成一棵哈夫曼树,则带权路径长度为___。 5. 在一棵二叉排序树上按_______遍历得到的结点序列是一个有序序列。 6. 对于一棵具有n个结点的二叉树,当进行链接存储时,其二叉链表中的指针域的总数为_______个,其中_______个用于链接孩子结点,_______个空闲着。 7. 在一棵二叉树中,度为0的结点个数为n0,度为2的结点个数为n2,则n0=______。 8. 一棵深度为k的满二叉树的结点总数为_______,一棵深度为k的完全二叉树的结点总数的最小值为_____,最大值为______。 9. 由三个结点构成的二叉树,共有____种不同的形态。 10. 设高度为h的二叉树中只有度为0和度为2的结点,则此类二叉树中所包含的结点数至少为____。 11. 一棵含有n个结点的k叉树,______形态达到最大深度,____形态达到最小深度。 12. 对于一棵具有n个结点的二叉树,若一个结点的编号为i(1≤i≤n),则它的左孩子结点的编号为________,右孩子结点的编号为________,双亲结点的编号为________。 13. 对于一棵具有n个结点的二叉树,采用二叉链表存储时,链表中指针域的总数为_________个,其中___________个用于链接孩子结点,_____________个空闲着。 14. 哈夫曼树是指________________________________________________的二叉树。 15. 空树是指________________________,最小的树是指_______________________。 16. 二叉树的链式存储结构有______________和_______________两种。 17. 三叉链表比二叉链表多一个指向______________的指针域。 18. 线索是指___________________________________________。 19. 线索链表中的rtag域值为_____时,表示该结点无右孩子,此时______域为指向该结点后继线索的指针。 20. 本节中我们学习的树的存储结构有_____________、___________和___________。
四、应用题 1. 已知一棵树边的集合为{,,,,,,j>,,,,,,},请画出这棵树,并回答下列问题: (1)哪个是根结点? (2)哪些是叶子结点? (3)哪个是结点g的双亲? (4)哪些是结点g的祖先? (5)哪些是结点g的孩子? (6)哪些是结点e的孩子? (7)哪些是结点e的兄弟?哪些是结点f的兄弟? (8)结点b和n的层次号分别是什么? (9)树的深度是多少? (10)以结点c为根的子树深度是多少? 2. 一棵度为2的树与一棵二叉树有何区别。 3. 试分别画出具有3个结点的树和二叉树的所有不同形态? 4. 已知用一维数组存放的一棵完全二叉树:ABCDEFGHIJKL,写出该二叉树的先序、中序和后序遍历序列。 5. 一棵深度为H的满k叉树有如下性质:第H层上的结点都是叶子结点,其余各层上每个结点都有k棵非空子树,如果按层次自上至下,从左到右顺序从1开始对全部结点编号,回答下列问题: (1)各层的结点数目是多少? (2)编号为n的结点的父结点如果存在,编号是多少? (3)编号为n的结点的第i个孩子结点如果存在,编号是多少?