华中师范大学成人教育《数据结构》期末考试复习题及参考答案.docx
《华中师范大学成人教育《数据结构》期末考试复习题及参考答案.docx》由会员分享,可在线阅读,更多相关《华中师范大学成人教育《数据结构》期末考试复习题及参考答案.docx(23页珍藏版)》请在冰豆网上搜索。
华中师范大学成人教育《数据结构》期末考试复习题及参考答案
华中师范大学成人教育《数据结构》期末考试复习题及参考答案
一、单选题(共15道小题,共30分)
1.对线性表进行折半查找时,要求线性表必须()。
(2分)
A.以顺序方式存储
B.以链接方式存储
C.以顺序方式存储,且元素按关键字有序排序
D.以链接方式存储,且元素按关键字有序排序
【答案】C
【解析】本题考点是线性表折半查找的条件。
折半查找的前提条件是线性表以顺序方式存储,且元素按关键字有序排序,因此,本题参考答案是C。
2.在n个结点的顺序表中,算法的时间复杂度是O
(1)的操作是()(2分)
A.访问第i个结点(1<=i<=n)和求第i个结点的直接前趋(2<=i<=n)
B.在第i个结点后插入一个新的结点(1<=i<=n)
C.删除第i个结点(1<=i<=n)
D.将n个结点从小到大排序.
【答案】A
【解析】本题考点是操作顺序表时时间复杂度的计算方法。
假设顺序表L,长度为n,求第i个节点L[i],直接前驱L[i-1],因此为O
(1),答案B需要移动n-i个节点,因此为O(n),答案C也需要移动n-i个节点,答案D根据排序方法不同最慢O(n^2),最快O(nlogn)。
因此,本题参考答案是A。
3.一个向量的第一个元素的地址是100,每个元素的长度是2,则第五个元素的地址是()。
(2分)
A.102
B.110
C.108
D.120
【答案】C
【解析】本题考点是向量中存储地址的计算方法。
向量首地址是100,那么第i个元素的地址是100+(i-1)*2。
因此,本题参考答案是C。
4.在一个有向图中,所有顶点的度数之和等于所有弧数的()倍。
(2分)
A.3
B.2
C.1
D.1/2
【答案】B
【解析】本题考点是有向图顶点度数与弧数的关系。
有向图的某个顶点v,把以v为终点的边的数目,称为v的入度;以v为始点的边的数目,称为v的出度;v的度则定义为该顶点的入度和出度之和。
显然,在一个有向图中,所有顶点的度数之和等于所有弧数的2倍。
因此,本题参考答案是B。
5.已知二叉树的前、中根序列分别是abdefcg和defbagc,则该二叉树的后根遍历序列是()。
(2分)
A.defbgca
B.fedbgca
C.abcdefg
D.gfedcba
【答案】B
【解析】本题考点是二叉树的遍历方法。
由二叉树的前、中根序列可以确定这棵二叉树,再运用后根遍历方法得到后序序列。
或者可以用排除法,因为先根序列为abdefcg,中根为defbagc,可以看出a为根结点,defb和gc分别为左、右子树,那么a必然是后根遍历序列的末结点,这样可排除C选项。
再对defb和gc采用上述方法进行判定,可以排除A和D。
因此,本题参考答案是B。
6.某线性表中最常用的操作是在最后一个元素之后插入一个元素和删除第一个元素,则采用()存储方式最节省运算时间。
(2分)
A.单链表
B.仅有头指针的单循环链表
C.双链表
D.仅有尾指针的单循环链表
【答案】D
【解析】本题考点是单循环链表的特点。
某线性表中最常用的操作是在最后一个元素之后插入一个元素和删除第一个元素,则采用仅有尾指针的单循环链表存储方式最节省运算时间,时间复杂度为O
(1)。
因此,本题参考答案是D。
7.链表的结点类型定义如下:
typedefstructnode*link;
structnode
{
ListItemelement;
linkleft;
linkright;
}*p,*q,*r;
删除双链表中结点p(由p指向的结点)的操作是()(2分)
A.q=p->left;r=p->right;q->right=r;r->left=q;
B.q=p->right;r=p->left;q->right=r;r->left=q;
C.q=p->left;r=p->right;q->left=r;r->right=q;
D.q=p->left;r=p->right;q->right=r->left;
【答案】A
【解析】本题考点是链表的操作。
根据链表结点类型的定义可以看出,该链表是一个双向链表。
删除双链表中结点p(由p指向的结点)的操作是:
q=p->left;
r=p->right;
q->right=r;
r->left=q;
因此,本题参考答案是A。
8.以下哪一个术语与数据的存储结构无关()(2分)
A.顺序表
B.静态数组
C.二叉树
D.链表
【答案】C
【解析】本题考点是数据结构的基本概念。
二叉树是每个节点最多有两个子树的树结构,不是数据的存储结构。
因此,本题参考答案是C。
9.一个递归算法必须包括()。
(2分)
A.递归部分
B.终止条件和递归部分
C.迭代部分
D.终止条件和迭代部分
【答案】B
【解析】本题考点是递归算法的组成。
运用递归解决问题的三个条件是:
1)可以把要解决的问题转化为一个新问题,而这个新的问题的解决方法仍与原来的解决方法相同,只是所处理的对象有规律地递增或递减。
2)可以应用这个转化过程使问题得到解决。
3)必定要有一个明确的结束递归的条件。
因此,本题参考答案是B。
10.对于只在表的首、尾进行插入操作的线性表,宜采用的存储结构为()(2分)
A.顺序表
B.用头指针表示的单循环链表
C.用尾指针表示的单循环链表
D.单链表
【答案】C
【解析】本题考点是循环链表的优点。
插入和删除方便的存储结构是链表,这是因为链表插入和删除时不需要移动元素就能实现。
只在表的首、尾进行插入操作的线性表用尾指针表示的单循环链表最适宜,减少了移动指针的次数。
因此,本题参考答案是C。
11.具有10个叶结点的二叉树中有()个度为2的结点.(2分)
A.8
B.9
C.10
D.ll
【答案】B
【解析】本题考点是二叉树的性质。
叶子结点个数=度为2的结点个数+1。
因此,本题参考答案是B。
12.若一棵二叉树具有10个度为2的结点,5个度为1的结点,则度为0的结点个数是()。
(2分)
A.9
B.11
C.15
D.不确定
【答案】B
【解析】本题考点是二叉树的性质。
因为二叉树所有结点的个数都不大于2,所以结点总数n=n0+n1+n2
(1)又因为度为1和度为2的结点分别有1个子树和2个子树,所以,二叉树中子树结点就有n(子)=n1+2n2二叉树中只有根节点不是子树结点,所以二叉树结点总数n=n(子)+1即n=n1+2n2+1
(2)结合两式就得n0=n2+1。
因此,本题参考答案是B。
13.设栈s的类型为sqstack,判定栈空的条件是()。
(2分)
A.s==nil
B.s->top==0
C.s.top==0
D.s.top==nil
【答案】B
【解析】本题考点是栈空的条件。
判断栈空的条件是栈顶元素是否为0。
因此,本题参考答案是B。
14.在一棵具有n个结点的二叉树中,所有结点的空子树个数等于()。
(2分)
A.n
B.n-1
C.n+1
D.2*n
【答案】C
【解析】本题考点是二叉树的性质。
结点有n个,于是子树总数为2n,所以的边数为n-1,因此结点的空子树数量为2n-(n-1)=n+1因此,本题参考答案是C。
15.一个栈的输入序列是a,b,c,d,e,则不可能输出是()。
(2分)
A.ecdab
B.cdeba
C.decba
D.abcde
【答案】A
【解析】本题考点是栈的基本原理。
由于输入序列中d在c之后输入,若在e输入之前d和c还未输出,那么将来输出时d一定在c之前输出。
因此,本题参考答案是A。
二、多选题(共10道小题,共40分)
16.下面关于哈希(Hash)查找的说法不正确的是()(4分)
A.哈希函数构造的越复杂越好,因为这样随机性好,冲突小
B.除留余数法是所有哈希函数中最好的
C.不存在特别好与坏的哈希函数,要视情况而定
D.若需在哈希表中删去一个元素,不管用何种方法解决冲突都只要简单的将该元素删去即可
【答案】A,B,D
【解析】不存在特别好与坏的哈希函数,要视情况而定
17.线性表的特点正确的()(4分)
A.存在唯一的一个被称作”第一个“的数据元素。
B.不存在唯一的一个被称作”第一个“的数据元素。
C.存在唯一的一个被称作”最后一个“的数据元素。
D.不存在唯一的一个被称作”最后一个“的数据元素。
【答案】A,C
【解析】解析内容
18.对于单链表表示法,以下说法正确的是()(4分)
A.指向链表的第一个结点的指针,称为头指针
B.单链表的每一个结点都被一个指针所指
C.任何结点只能通过指向它的指针才能引用
D.尾指针变量具标识单链表的作用,故常用尾指针变量来命名单链表
【答案】A,B,C
【解析】指向链表的第一个结点的指针,称为头指针;单链表的每一个结点都被一个指针所指;任何结点只能通过指向它的指针才能引用
19.下面关于串的的叙述中,正确的是()(4分)
A.串是字符的有限序列
B.空串是由空格构成的串
C.模式匹配是串的一种重要运算
D.串既可以采用顺序存储,也可以采用链式存储
【答案】A,C,D
【解析】串是字符的有限序列;模式匹配是串的一种重要运算;串既可以采用顺序存储,也可以采用链式存储
20.单链表表示法的基本思想是指针P表示结点间的逻辑关系,则以下说法正确的是()(4分)
A.任何指针都不能用打印语句输出一个指针型变量的值
B.如果要引用(如访问)p所指结点,只需写出p(以后跟域名)即可
C.若想修改变量p的值(比如让P指向另一个结点),则应直接对p赋值
D.对于一个指针型变量P的值。
只需知道它指的是哪个结点
【答案】A,C,D
【解析】任何指针都不能用打印语句输出一个指针型变量的值;若想修改变量p的值(比如让P指向另一个结点),则应直接对p赋值;对于一个指针型变量P的值。
只需知道它指的是哪个结点
21.对线性表,可进行如下基本操作()(4分)
A.随机存取
B.插入
C.删除
D.查找
【答案】A,B,C,D
【解析】对线性表,可进行随机存取、插入、删除和查找
22.依据所有数据成员之间的逻辑关系的不同,数据结构分为()(4分)
A.非线性结构
B.逻辑结构
C.物理结构
D.线性结构
【答案】A,D
【解析】解析内容
23.以下说法错误的是()(4分)
A.数据元素是数据的最小单位
B.数据项是数据的基本单位
C.数据结构是带有结构的各数据项的集合
D.数据结构是带有结构的数据元素的集合
【答案】A,B,C
【解析】数据结构是带有结构的数据元素的集合
24.以下说法正确的是()(4分)
A.二叉树可以是空集
B.二叉树的任一结点至多有两棵子树
C.二叉树与树具有相同的树形结构
D.二叉树的子树有次序之分
【答案】A,B,D
【解析】二叉树可以是空集;二叉树的任一结点至多有两棵子树;二叉树的子树有次序之分
25.以下说法正确的是()(4分)
A.对于线性表来说,定位运算在顺序表和单链表上的量级均为O(n)
B.读表元运算在顺序表上只需常数时间O
(1)便可实现,因此顺序表是一种随机存取结构
C.在链表上实现读表