数据结构期末考卷13-14

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

诚信应考 考出水平 考出风格 浙江大学城市学院 2013 — 2014 学年第 一 学期期末考试试卷 《 数据结构基础 》 开课单位: 计算分院 ;考试形式:闭卷;考试时间: 2014 年 1 月 14 日; 所需时间: 120 分钟

一.选择题 (本大题共 18 题,每题 1 分,共 18 分) 1. 数据的 包括集合、线性结构、树形结构和图形结构四种基本类型。 A. 存储结构 B. 逻辑结构 C. 基本运算 D. 算法描述 2. 中任何两个结点之间都没有逻辑关系。 A. 树形结构 B. 集合 C. 图形结构 D. 线性结构 3. 下面的程序段违反了算法的 原则。 void fun() { int x=2; while (!(x%2)) x=x*2; printf(“%d ”,x); }

A. 健壮性

B. 确定性

C. 可行性

D. 有穷性 4. 算法分析的两个主要方面是 。 A. 空间复杂性和时间复杂性 B. 正确性和简明性 C. 可读性和文档性 D. 数据复杂性和程序复杂性

5. 用数组表示线性表的优点是。

A. 便于插入和删除操作

B. 便于随机存取

C. 可以动态地分配存储空间

D. 不需要占用一片相邻的存储空间

6. 循环链表的主要优点是。

A. 节约存储空间

B. 已知某个结点的位置后,能够很容易找到它的直接前驱

C. 在进行插入、删除运算时,能更好的保证链表不断开

D. 从表中的任意结点出发都能访问到任何一个结点

7. 可以用带表头附加结点的链表表示线性表,也可以用不带头结点的链表表示线性表,前者最主要的好处是。

A. 可以加快对表的遍历

B. 节省存储空间

C. 使空表和非空表的处理统一

D. 可以提高存取表元素的速度

8. 在头指针为h且表长大于1的单向循环链表中,指针p指向表中的某个结点,若p->next->next==h,则。

A. p指向头结点

B. p指向尾结点

C. *p的直接后继是头结点

D. *p的直接后继是尾结点

9. 线性表中,只有直接前驱而无后继的元素是。

A. 首元素

B. 尾元素

C. 中间元素

D. 全部元素

10. 以下不是栈的基本运算的是。

A. 删除栈顶元素

B. 删除栈底元素

C. 判断栈是否为空

D. 将栈置为空栈

11. 若用一个大小为6的数组来实现循环队列,且当前rear和fornt的值分别为1和4。从当前队列中删除一个元素,再加入两个元素后,rear和front的值分别为。

A. 3和5

B. 2和0

C. 0和2

D. 5和3

12. 最不适合用作链队的链表是_____。

A. 只带队头指针的非循环双链表

B. 只带队头指针的循环双链表

C. 只带队尾指针的循环双链表

D. 只带队尾指针的循环单链表

13. 最不适合用作栈的链表是。

A. 只有表头指针没有表尾指针的循环双链表

B. 只有表尾指针没有表头指针的循环双链表

C. 只有表尾指针没有表头指针的循环单链表

D. 只有表头指针没有表尾指针的循环单链表

14. 一个递归的定义可以用递归过程求解,也可以用非递归过程求解,但单从运行时间来看,通常递归过程比非递归过程效率。

A. 高

B. 低

C. 相同

D. 无法确定

15. 设n 和m 为一棵二叉树上的两个结点,中序遍历时,n 在m 后的条件是 。

A. n 在m 的右子树上

B. n 是m 祖先

C. n 在m 的左子树上

D. n 是m 子孙

16. 已知一棵普通树的广义表表示为a(b, c(e(h, i, j), f), d(g)),则此树的深度为 。

A. 2

B. 3

C. 4

D. 5

17. G 是一个非连通无向图,共有21条边,则该图至少有___________个顶点。

A. 7

B. 8

C. 9

D. 23

18. 用邻接表存储图,所用的空间大小___________。

A. 与图的顶点数和边数都有关

B. 只与图的边数有关

C. 只与图的顶点数有关

D. 与边数的平方有关

二.填空题 (本大题共 10 题,每题 2 分,共 20 分)

1. 数据结构主要研究三方面的内容:数据的逻辑结构、 。

2. 计算机算法指的是解决问题的有限运算序列,它必具备输入、输出、有穷性和 这五个特性。

3. 下列算法的时间复杂度为 。 int test(int n) {

int s=1;

while(s<=n)

s=s*2;

return s;

}

4. 在单链表中,指针p 指向某中间结点,实现“删除p 结点的后继结点”的语句是 。

5. 向一个栈顶指针为top 的链式栈中插入一个s 所指的结点时,则执行 。

6. 在一个非空的链式队列中,假设f 和r 分别为队头和队尾指针,则实现出队列运算并将删除结点元素值赋给x 的语句是 。

7. 栈s 的初始状态为空,6个元素a, b, c, d, e, f 依次入栈,若出栈的顺序是b, d, c, f, e, a ,则栈s 的容量至少应该是 。

8. 已知二叉树的后序遍历是 d a b e c ,中序遍历是 d e b a c ,则其前序遍历是 。

9. 设森林F 中有三棵树,第一、第二和第三棵树的结点个数分别为m 、n 和p ,则与森林F 对应的二叉树根结点的右子树上的结点个数是 。

10. 对于稠密图,适合使用 存储结构。

三.解答题 ( 本大题共 3 题,每题 6 分,共 18 分)

1. 设栈S 的初始状态为空,队列Q 的初始状态如下图所示:

a1 a2 a3 a4

↑ ↑

队头 队尾

相关文档
最新文档