数据结构试题库(7)

2025-11-09

沈阳理工大学应用技术学院

信息与控制学院 计算机科学与技术教研室

2011-5-8

数据结构复习题:树和二叉树 单选题

1、假定在一棵二叉树中,双分支结点数为15个,单分支结点数为32个,则叶子结点 数为___16__。 2、假定一棵二叉树的结点数为18个,则它的最小高度__5___。 3、在一棵二叉树中第五层上的结点数最多为__16___。 4、在一棵具有五层的满二叉树中,结点总数为__31___。

5、已知8个数据元素为(34、76、45、18、26、54、92、65),按照依次插入结点的方法生成一棵二叉排序树后,最后两层上的结点总数为___2__。

6、由分别带权为9、2、5、7的四个叶子结点构造一棵哈夫曼树,该树的带权路径长度为__44___。

7、在树中除根结点外,其余结点分成m(m≥0)个___互不相交__的集合T1,T2,T3...Tm,每个 集合又都是树,此时结点T称为Ti的父结点,Ti称为T的子结点(1≤i≤m)。

8、下面答案__二叉树中的每个结点的关键字大于其左子树(如果存在)所有结点的关键字值,且小于其右子树(如果存在)所有结点的关键字值__是查找二叉树(又称二叉排序树)。 9、如果结点A有三个兄弟,而且B是A的双亲,则B的出度是__4___。

- 31 -

10、一个深度为L的满K叉树有如下性质:第L层上的结点都是叶子结点,其余各层上每 个结点都有K棵非空子树。如果按层次顺序从1开始对全部结点编号,编号为n的有右兄弟的条件是__(n-1)%k!=0___。 11、在完全二叉树中,当i为奇数且不等于1时,结点i的左兄弟是结点__i+1___,否则没有左兄弟。 12、某二叉树T有n个结点,设按某种遍历顺序对T中的每个结点进行编号,编号值为1,2,?,n且有如下性质:T中任一结点V,其编号等于左子树上的最小编号减1,而V的右子树 的结点中,其最小编号等于V左子树上结点的最大编号加1。这时按__前序遍历序列___编号。 13、最小代价生成树_____。

14、将递归算法转换成对应的非递归算法时,通常需要使用_____栈_____。 15、设二维数组A[m][n],每个数组元素占用K个存储单元,第一个数组元素的存储地址是Loc(a[0][0]),求按行优先顺序存放的数组元素a[i][j](0<=i<=m-1,0<=j<=n-1)的存储地址为___ Loc(a[0][0])+[i*n+j]*k ___。 16、设二维数组A[m][n],每个数组元素占用k个存储单元,第一个数组元素的存储地址是Loc(a[0][0]),求按列优先顺序存放的数组元素a[i][j](0<=i<=m-1,0<=j<=n-1)的存储地址为______。 17、设二维数组A[6][10],每个数组元素占用4个存储单元,若按行优先顺序存放的数组元素,a[0][0]的存储地址为860,则a[3][5]的存储地址是___1000___。 18、设二维数组A[6][10],每个数组元素占用4个存储单元,若按行优先顺序存放的数组元素a[3][5]的存储地址为1000,则a[0][0]的存储地址是______。

19、若将n阶上三角矩阵A按列优先顺序压缩存放在一维数组B[1..n(n+1)/2]中,第一个非零元素a1,1存于B[0]中,则应存放到B[k]中的非零元素ai,j(1<=i<=n,1<=j<=i)的下标i、j与k的对应关系是_j(j-1)/2+i-1_。 20、若将n阶下三角矩阵A按列优先顺序压缩存放在一维数组B[1..n(n+1)/2]中,第一个非零元素a1,1存于B[0]中,则应存放到B[k]中的非零元素ai,j(1<=i<=n,1<=j<=i)的下标i、j与k的对应关系是___(j-1)(2n-j+1)/2+i-j___。

21、对稀疏矩阵进行压缩存储的目的是___节省存储空间___。 22、稀疏矩阵压缩后,必会失去___随机存取___功能。

23、一个n*n的对称矩阵A,采用压缩方式存放到一维数组B中,则B的容量为___(n^2)/2___. 24、由权值分别为3,8,6,2,5的叶子结点生成一棵哈夫曼树,它的带权路径长度为____53_____。

25、在一棵深度为h的具有n个元素的二叉搜索树中,一个元素的最大搜索长度(即 经比较的结点数) 为_____h____。

26、根据集合{25,30,16,48},按照依次插入结点的方法生成一棵二叉搜索树,在等概率情况下成功查找一个元素的平均查找长度为____2.5_____。

27、利用n个值作为叶结点的权生成的霍夫曼树中共包含有____2*n-1_____个结点。 28、利用n个值作为叶结点的权生成的霍夫曼树中共包含有_____n-1____个双支结点。

29、利用3,6,8,12这4个值作为叶子结点的权,生成一棵霍夫曼树,该树中所有叶子的最长带权路径长度为____18_____。

30、在平衡二叉树中,每个结点的平衡因子的绝对值被限制为_____1____。

数据结构复习题:树和二叉树 判断题

1、由树转换成二叉树,其根结点的右子树总是空的。

2、后序遍历树和中序遍历与该树对应的二叉树,其结果不同。F

3、有一个结点是某二叉树子树的中序遍历序列中的最后一个结点,则它必是该子 树的前序遍历序列中的

- 32 -

最后一个结点。

4、若一个树叶是某子树的中序遍历序列中的最后一个结点,则它必是该子树的前序 遍历序列中的最后一个结点。T

5、已知二叉树的前序遍历和后序遍历序列并不能唯一地确定这棵树,因为不知道树 的根结点是哪一个。 6、在哈夫曼编码中,当两个字符出现的频率相同时,其编码也相同,对于这种情况应作特殊处理。F 7、中序遍历二叉排序树的结点就可以得到排好序的结点序列。

8、在二叉排序树上插入新的结点时,不必移动其它结点,仅需改动某个结点的指针, 由空变为非空即可。 9、堆中所有非终端结点的值均小于或等于(大于或等于)左右子树的值。 10、用一维数组元素矩阵,可以简化对矩阵的存取操作。F

11、对角矩阵的特点是非零元素只出现在矩阵的两条对角线上。 12、在n(n>3)阶三对角线矩阵中,每一行都有3个非零元素。 13、在n(n>3)阶三对角矩阵中,每一行都有3个非零元素。

数据结构复习题答案:树和二叉树 判断题 1、True 2、False 3、False 4、True 5、False 6、False 7、True 8、True 9、True 10、False 11、False 12、False 13、False

数据结构复习题:树和二叉树

1、己知二叉树采用二叉链存储结构存储,设计一个算法使用栈对二叉树进行先序遍历. void PreOrder1(BTNode *b) { BTNode *p; struct { BTNode *pt; int tag; //1:未访问,0:可访问 } St[MaxSize]; int top=-1; top++; St[top].pt=b; St[top].tag=1; while (top>-1) //栈不空时循环 { if (St[top].tag==1) //不能直接访问的情况

- 33 -

{ p=St[top].pt; top--; if (p!=NULL) {

//(2)式

top++; //右孩子结点进栈 St[top].pt=p->rchild; St[top].tag=1;

top++; //左孩子结点进栈 St[top].pt=p->lchild; St[top].tag=1; top++; //根结点进栈 St[top].pt=p; St[top].tag=0; } } //end of if (St[top].tag==1)

if (St[top].tag==0) //直接访问的情况 { printf(\ top--; } } //while }

数据结构复习题答案:树和二叉树 第二种方法

数据结构复习题:树和二叉树 填空题

1、对于一棵具有n个结点的树,则该树中所有结点的度之和为___n-1___。

2、在一棵二叉树中,度为0的结点的个数为n0 ,度为2的结点的个数为n2 ,则:n0=___n2+1___。 3、在二叉树的顺序存储中,对于下标为5的结点,它的双亲结点的下标为____2____, 若它存在左孩子,则左孩子结点的下标为____10____,若它存在右孩子,则右孩子结点的下标为____11_____。 4、在一棵二叉排序树中,按____中序___遍历得到的结点序列是一个有序序列。

5、由分别带权为3,9,6,2,5的共五个叶子结点构成一棵哈夫曼树,则带权路径长度为____55____。 6、有如下递归函数: int dunno (int m) {

int value; if (m==0) value=3; else

value=dunno(m-1)+5; return (value); }

- 34 -

执行语句printf(\;的结果是____18____。

7、所谓稀疏矩阵指的是___非零元素很少且分布没有规律___的矩阵。 8、一个稀疏矩阵Am*n采用三元组表示后,若把三元组中有关行下标与列下标的值互换,并把m和n的值互换,则就完成了Am*n的转置运算。这句话___不是___正确的。 9、若稀疏矩阵采用三元组压缩方法存储,只要把每个元素的行下标和列下标互换,就成了对该矩阵的转置运算,这种观点___错误___(正确或错误).

10、在一棵非空的二叉搜索树中,以每个分支结点为根的子树都是一棵______二叉搜索树______。 11、对一棵二叉搜索树进行中序遍历时,得到的结点序列是一个______有序序列______。

12、从一棵二叉搜索树中查找一个元素时,若元素的值等于根结点的值,则表明_____查找成功_______,若元素的值小于根结点的值,则继续向______左子树______查找,若元素的值大于根结点的值,则继续向______右子树______查找。

13、在一个堆的顺序存储中,若一个元素的下标为i,则它的左孩子元素的下标为______2i+1______,右孩子元素的下标为______2i+2______。

14、在一个小根堆中,堆顶结点的值是所有结点中的______最小值______,在一个大根堆中,堆顶结点的值是所有结点中的______最大值______。

15、当向一个小根堆插入一个具有最小值的元素时,该元素需要逐层______向上______调整,直到被调整到______栈顶______位置为止。

16、不管一棵哈夫曼树中有偶数或奇数个叶子结点,则树中总结点的个数必为______奇数____个。 17、在中序线索二叉搜索树中,具有最小值结点的左指针域的值为______空_____。

数据结构复习题:树和二叉树 问答题

1、对于二叉排序树,当所有结点的权都相等的情况下,最佳二叉排序树有何特点。 其特点是只有最下面的二层结点可以小于2,其它结点的度数必须为2。

2、分别写出对二叉树进行中根遍历和先根遍历的非递归算法(不允许使用转向语句)。 解答:中根遍历的非递归算法: status inorder(bt){ top=0; p=bt; do{

(1) while (p!=nil ){

top=top+1; s[top]=p;

p:=p->left; //p指向左子树 }

(2) if (top>0 ){

p=s[top]; top=top-1; printf(p->data);

p=p->right; // p指向右子树 }

}while !((top=0) && (p=nil)); }

解答: 先根遍历的非递归算法:

- 35 -


数据结构试题库(7).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:甘肃兰州市2024届高三物理上学期第二次月考(9月)

相关阅读
本类排行
× 游客快捷下载通道(下载后可以自由复制和排版)

下载本文档需要支付 7

支付方式:

开通VIP包月会员 特价:29元/月

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:xuecool-com QQ:370150219