一、填空题
1.二叉树就是度为 2 的树。(F)
二叉树的度<=2
2.线性表采用链式存储表示时,所有结点之间的存储单元地址可以连续也可以不连续。(T)
在顺序表中,逻辑上相邻的元素,其物理位置一定相邻。在单链表中,逻辑上相邻的元素,其物理位置不一定相邻。
3. 队列适合解决处理顺序与输入顺序相反的问题。(F)
队列适合解决处理顺序与输入顺序相同的问题。
栈适合解决处理顺序与输入顺序相反的问题。
4. 完全二叉树中,若一个结点没有左孩子,则它必是树叶。(T)
完全二叉树中,若一个结点没有左孩子,则它必定没有右孩子(先左再右),所以是树叶
5. n个元素进队的顺序和出队的顺序总是一致的。(T)
队列:先进先出,所以进队和出队的顺序是一致的
6. 某二叉树的前序和中序遍历序列正好一样,则该二叉树中的任何结点一定都无左孩子。(T)
前序遍历:根 左 右
中序遍历:左 根 右
若没有左孩子,都是根 右
7.2^N和N^N具有相同的增长速度。(F)
8.若某线性表最常用的操作是存取任一指定序号的元素和在最后进行插入和删除运算,则利用顺序表存储最节省时间。(T)
在最后进行插入和删除元素:顺序表
9. 一棵有124个结点的完全二叉树,其叶结点个数是确定的。(T)
完全二叉树:1.叶子结点只可能出现在最后两层
2.度为1的结点个数为0或1
124=1+2+4+8+16+32+61;有左孩子
10. 解决问题的效率,跟数据的组织方式无关。(F)
解决问题的效率,跟数据的组织方式有关,跟空间的利用率有关,跟算法的巧妙程度有关。
11. 若一个结点是某二叉树的中序遍历序列的最后一个结点,则它必是该树的前序遍历序列中的最后一个结点。(F)
中序遍历 :BA
前序遍历:AB
二、选择题
1.若某线性表最常用的操作是存取任一指定序号的元素和在最后进行插入和删除运算,则利用哪种存储方式最节省时间?(D)
A.双链表
B.带头结点的双循环链表
C.单循环链表
D.顺序表
2.下面程序段的时间复杂度是(A)。
A.O(1)
B.O(N2)
C.O(log2N)
D.O(N)
3.已知权值集合为{5,7,2,3,6,1,4},计算带权路径长度WPL(B)。
A.73
B.74
C.75
D.76
4. 在高度为h的完全二叉树中(B)。
A.度为0的结点都在第h层上(也可能在h-1层上)
B.第i (1≤i<h) 层上有2^(i-1)个结点
C.第i (1≤i<h) 层上结点的度都为2(可能有度为0或者度为1的点)
D.不存在度为1 的结点(肯能会存在)
5.已知二叉树的前序遍历序列为 ABDCEFG,中序遍历序列为 DBCAFEG,则后序遍历序列为 (B)
A.BDACEFG
B.DCBFGEA
C.GFEDCBA
D.ABCDEFG
后序遍历:左 右 根
DCB FGE A
6. 采用链结构存储线性表时,其地址(A )。
A.连续不连续都可以
B.部分地址必须是连续
C.必须是不连续的
D.必须是连续的
7.算法分析的目的是(D )。
A.分析算法的可读性和简明性
B.找出数据结构的合理性
C.研究算法中的输入和输出的关系
D.分析算法的效率以求改进
算法分析的目的是分析算法的效率以求改进
8. 在下述结论中,正确的是:(C)
①只有一个结点的二叉树的度为0;
②二叉树的度为2;(二叉树的度可以小于等于2)
③二叉树的左右子树可任意交换;(不可以)
④深度为K的完全二叉树的结点个数小于或等于深度相同的满二叉树。
A.②④
B.①②③
C.①④
D.②③④
9.一棵树可转换成为与其对应的二叉树,则下面叙述正确的是(C)。
A树的先根遍历序列与其对应的二叉树的中序遍历相同
B.树的后根遍历序列与其对应的二叉树的后序遍历相同
C.树的先根遍历序列与其对应的二叉树的先序遍历相同
D.以上都不对
树的先根遍历等价于二叉树的先序遍历
树的后跟遍历等价于二叉树的中序遍历
10. 采用顺序表存储结构存储的线性表,其首地址为100,每个元素的长度为2,则第5个元素的地址为。(C)
A.100
B.120
C.108
D.110
设首地址为X,每个元素的长度为b则第n个元素的地址为:
x+b*(n-1)=100+2*4=108
11. 数据元素在计算机存储器内表示时,物理相对位置和逻辑相对位置相同并且是连续的,称之为( B)。
A.逻辑结构
B.顺序存储结构
C.链式存储结构
D.以上都不对
12.用数组表示线性表的优点是(B)。
A.不需要占用一片相邻的存储空间
B.便于随机存取
C.便于插入和删除操作
D.可以动态地分配存储空间
顺序表优点:随机存取、存储密度大
链表优点:个数自由可充、不必移动元素,修改效率高。
13. 以下有关二叉树的说法正确的是(C)。
A.任一结点的度均为2
B.二叉树的度为2
C.一棵二叉树的度可以小于2
D.至少有一个结点的度为2
二叉树的度可以小于等于2
14.依次在初始为空的队列中插入元素a,b,c,d以后,紧接着做了两次删除操作,此时的队头元素是(B )。
A.d
B.c
C.a
D.b
队列:先进先出:
1.abcd
2.cd(删过之后)
15. 由分别带权为9、2、5、7的四个叶子结点构成一棵哈夫曼树,该树的带权路径长度为:(D)
A.37
B.23
C.46
D.44
16. 若某表最常用的操作是在最后一个结点之后插入一个结点或删除最后一个结点。则采用哪种存储方式最节省运算时间?(A)
A.带头结点的双循环链表
B.单循环链表
C.双链表
D.单链表
带头结点的双向循环链表,头结点的前驱即可找到最后一个结点,可以快速插入,再向前可以找到最后一二个结点快速删除
单链表找到链表尾部需要扫描整个链表
双链表找到链表尾部也需要扫描整个链表
单循环链表只有单向指针,找到链表尾部也需要扫描整个链表
17. 对于任意一棵高度为 5 且有 10 个结点的二叉树,若采用顺序存储结构保存,每个结点占 1 个存储单元(仅存放结点的数据信息),则存放该二叉树需要的存储单元的数量至少是:(A)
A.31
B.16
C.15
D.10
高度为5:1+2+4+8+16=31;
18. 为解决计算机主机与打印机之间速度不匹配问题,通常设置一个打印数据缓冲区,主机将要输出的数据依次写入该缓冲区,而打印机则依次从该缓冲区中取出数据。该缓冲区的逻辑结构应该是?(A)
A.队列
B.堆栈
C.图
D.树
19.线性表在 ▁▁▁▁▁ 情况下适合采用链式存储结构。(B)
A.线性表的数据元素包含大量的数据项
B.线性表需经常插入或删除数据元素
C.线性表包含大量的数据元素
D.线性表中数据元素的值需经常修改
线性表需要经常插入或删除数据元素的情况下适合采用链式存储结构
20. 以下关于链式存储结构的叙述中,(D)是不正确的。
A.结点除自身信息外还包括指针域,因此存储密度小于顺序存储结构(链式结构存储密度小)
B.逻辑上相邻的结点物理上不必邻接(对)
C.插入、删除运算操作方便,不必移动结点(对)
D.可以通过计算直接确定第i个结点的存储地址(顺序存储结构中)
链式存储结构如果要计算第I个结点的存储地址,不能直接从首结点直接计算,而必须通过指针域来顺序查找,最后再定位。
顺序存储结构可以按照计算确定i个结点的存储位置,链式存储结构必须遍历所有节点才能确定地址。
21. 按照二叉树的定义,具有3个结点的二叉树有几种?(A)
A.5
B.6
C.4
D.3
22.在线性表中,除开始元素外,每个元素( A)。
A.只有唯一的前趋元素
B.有多个后继元素
C.只有唯一的后继元素
D.有多个前趋元素
23.在单链表中,指针p指向元素为x的结点,实现“删除x的后继”的语句是(A)。
A.p->next=p->next->next
B.p->next=p
C.p=p->next->next
D.p=p->next
24.在双向循环链表结点p
之后插入s
的语句是:(C)
A.p->next=s; s->prior=p; p->next->prior=s ; s->next=p->next;
B.s->prior=p; s->next=p->next; p->next=s; p->next->prior=s;
C.s->prior=p; s->next=p->next; p->next->prior=s; p->next=s;
D.p->next->prior=s; p->next=s; s->prior=p; s->next=p->next;
25.一棵有 1001 个结点的完全二叉树,其叶子结点数为 ▁▁▁▁▁ 。(C)
A.254
B.500
C.501
D.250
度为0的结点数为x,度为2的结点数为x-1;
x+x-1=1001 2x=1002 x=501
26. 下列函数中,哪个函数具有最慢的增长速度:(A)
A.N(log(N^2))
B.N(logN)^2
C.N^2(logN)
D.N^1.5
27.线性表、堆栈、队列的主要区别是什么?(C)
A.堆栈和队列都不是线性结构,而线性表是
B.线性表用指针,堆栈和队列用数组
C.堆栈和队列都是插入、删除受到约束的线性表
D.线性表和队列都可以用循环链表实现,但堆栈不能
28.若一棵二叉树有126个结点,在第7层(根结点在第1层)至多有( D)个结点。
A.不存在第7层
B.32
C.64
D.63
1+2+4+8+16+32+63=126
29. 已知一棵二叉树的树形如下图所示,其后序序列为{ e
, a
, c
, b
, d
, g
, f
}。树中与结点a
同层的结点是:(A)
A.d
B.g
C.c
D. f
30. 有六个元素以6、5、4、3、2、1的顺序进栈,问哪个不是合法的出栈序列?(B)
A.5 4 3 6 1 2
B.3 4 6 5 2 1
C.2 3 4 1 5 6
D.4 5 3 1 2 6
栈:先进后出
6比5先进,所以5,比6 后出,出的顺序应该是5 6而不是6 5
31. 在数据结构中,从逻辑上可以把数据结构分为(D )。
A.动态结构和静态结构
B.内部结构和外部结构
C.紧凑结构和非紧凑结构
D.线性结构和非线性结构
数据的逻辑结构可以分为线性结构和非线性结构
线性结构(线性表、栈、队列、字符串、数组、广义表)
非线性结构(树、图)
数据的存储结构分为顺序存储和非顺序存储