数据结构与算法复习题及参考答案.
2016《数据结构域算法》复习题
复习题集─参考答案
一判断题
(√)1. 在决定选取何种存储结构时,一般不考虑各结点的值如何。
(√)2. 抽象数据类型与计算机内部表示和实现无关。
(×)3. 线性表采用链式存储结构时,结
点和结点内部的存储空间可以是不连续的。(×)4. 链表的每个结点中都恰好包含一个指针。
(×)5.链表的删除算法很简单,因为当删除链中某个结点后,计算机会自动地将后续的各个单元向前移动。
(×)6. 线性表的每个结点只能是一个简单类型,而链表的每个结点可以是一个复杂类型。
(×)7. 顺序表结构适宜于进行顺序存取,而链表适宜于进行随机存取。
(×)8. 线性表在物理存储空间中也一定是连续的。
(×)9. 顺序存储方式只能用于存储线性结构。
(√)10.栈是一种对所有插入、删除操作限于在表的一端进行的线性表,是一种后进先出型结构。
(√)11.对于不同的使用者,一个表结构既可以是栈,也可以是队列,也可以是线性表。
(√)12.栈是一种对所有插入、删除操作
限于在表的一端进行的线性表,是一种后进先出型结构。
(√)13.两个栈共享一片连续内存空间时,为提高内存 2
2016《数据结构域算法》复习题
利用率,减少溢出机会,应把两个栈的栈底分别设在这片内存空间的两端。
(×)14.二叉树的度为2。
(√)15.若二叉树用二叉链表作存贮结构,则在n个结点的二叉树链表中只有n—1个非空指针域。
(×)16.二叉树中每个结点的两棵子树的高度差等于1。
(√)17.用二叉链表法存储包含n个结点的二叉树,结点的2n个指针区域中有n+1个为空指针。
(√)18.具有12个结点的完全二叉树有5个度为2的结点。
(√)19.二叉树的前序遍历序列中,任意一个结点均处在其孩子结点的前面。
(×)20.在冒泡法排序中,关键值较小的元素总是向前移动,关键值较大的元素总是
向后移动。
(×)21.计算机处理的对象可以分为数据和非数据两大类。[计算机处理的对象都是数据]
(×)22.数据的逻辑结构与各数据元素在计算机中如何存储有关。
(×)23.算法必须用程序语言来书写。(×)24.判断某个算法是否容易阅读是算法分析的任务之一。
(×)25.顺序表是一种有序的线性表。[任何数据结构才用顺序存储都叫顺序表]
3
2016《数据结构域算法》复习题
(√)26.分配给顺序表的内存单元地址必须是连续的。
(√)27.栈和队列具有相同的逻辑特性。[它们的逻辑结构都是线性表]
(√)28.树形结构中每个结点至多有一个前驱。
(×)29.在树形结构中,处于同一层上的各结点之间都存在兄弟关系。
(×)30.如果表示图的邻接矩阵是对称矩阵,则该图一定是无向图。
(×)31.如果表示图的邻接矩阵是对称矩阵,则该图一定是有向图。
(×)32.顺序查找方法只能在顺序存储结构上进行。
(×)33.折半查找可以在有序的双向链表上进行。
(√)34.满二叉树中不存在度为1的结点。 (×)35.完全二叉树中的每个结点或者没有孩子或者有两个孩子。
(√)36.对n 个元素执行快速排序,在进行第一次分组时,排序码的比较次数总是
n-1次。
(√)37.在有向图中,各顶点的入度之和等于各顶点的出度之和。
一、选择题
(A )1. 在n 个结点的顺序表中,算法的时间复杂度是O(1)的操作是:
A) 访问第i 个结点(1≤i ≤n )和求第i 个结点的直接
4 2016《数据结构域算法》复习题 )i ≤nC) 删除第i 个结点(1
≤)前驱(2≤i ≤n
≤i ≤n )B) 在第i 个结点后插入一
个新结点(1 个结点从小到大排序将nD) 算法分析的目的是:)2. (C研究算法中
的输B) A) 找出数据结构的合理
性入和输出的关系分析算法的易D) 分
析算法的效率以求改进 C)
懂性和文档性 3. 算法分析的两个主要方
面是:(A)正确性和简明 B) A) 空间
复杂性和时间复杂性
性数据复杂性D) C) 可读性
和文档性
和程序复杂性计算机算法指的是:C)4. (解决问题的有C) B) 排序方法A) 计算方法
D) 调度方法限运算序列
计算机算法必须具备输入、输出和 B)
5. 等5(个特性。
A) 可行性、可移植性和可扩充性 B) 可行性、确定性和有穷性
C) 确定性、有穷性和稳定性 D) 易读性、稳定性和安全性
(B)6. 一个向量第一个元素的存储地址是100,每个元 5
2016《数据结构域算法》复习题
素的长度为2,则第5个元素的地址是: (A)110 (B)108 (C)100 (D)120
(D)下列选项中与数据存储结构无关的术
语是:
A.顺序表
B.链表
C.链
队列
D.栈
(A)7. 链接存储的存储结构所占存储空间:(A)分两部分,一部分存放结点值,另一
部分存放表示结点间关系的指针
(B)只有一部分,存放结点值
(C)只有一部分,存储表示结点间关系的指针
(D)分两部分,一部分存放结点值,另一部分存放结点所占单元数
(B)8. 带头结点的单链表head,链表为空的判定条件是
(A)head == NULL (B)
head->next ==NULL
( C) head->next ==head (D)