2014 年广东暨南大学数据结构考研真题 A 卷
招生专业与代码:计算机系统结构 081201,计算机软件与理论 081202,计算机应用技术
081203,软件工程 083500,计算机技术(专业学位) 085211,软件工程(专业学位) 085212
考试科目名称及代码:数据结构 830
考生注意:所有答案必须写在答题纸(卷)上,写在本试题上一律不给分。
一.选择题(每题 2 分,共 30 分)
1.数据结构是研究数据的(
)以及它们之间的相互关系.
A. 理想结构,物理结构
B.理想结构,抽象结构
C. 物理结构,逻辑结构
D.抽象结构,逻辑结构
2.线性表的链接实现有利于(
)运算
A.插入 B.读表元素 C. 查找
D.定位
3.从一个长度为 n 的顺序表中删除第 i 个元素(1≤i≤n)时,需向前移动(
)个元素.
A. n-i
B. n-i+1
C. n-i-1
D. i
4.具有 n 个顶点的完全有向图的边数为(
).
A. n(n-1)/2
B. n(n-1)
C. n2
D. n2-1
5.快速排序在(
)情况下最不利于发挥其长处.
A. 被排序的数据量太大.
B. 被排序数据中含有多个相同的关键字.
C. 被排序的数据完全无序
D. 被排序的数据已基本有序
6. 线性表采用链式存储时,其地址(
).
A.必须是连续的
B.部分地址必须是连续的
C.一定是不连续的
D.连续与否均可以
7.一个栈的进栈序列是 a, b, c, d, e, 则栈的不可能的输出序列是(
)
A. edcba
B. decba
C. dceab
D. abcde
8. 采用顺序查找法查找长度为 n 的线性表时,每个元素的平均查找长度为 (
)
A. n
B. n/2
C.(n+1)/2
D.(n-1)/2
9.下列哪种排序需要的附加存储开销最大(
).
A 快速排序
B 堆排序 C 归并排序
D 插入排序
10.具有 6 个顶点的无向图至少应有(
)条边才能确保是一个连通图.
A.5
B.6
C.7
D.8
11.对具有 n 个结点的有序表中折半查找时,其时间复杂度是 (
) .
A. O(log2n)
B. O(nlog2n)
C. O(n)
D. O(n2)
12. 通过一趟排序就能从整个记录序列中选择出具有最大(或最小)关键字的记录,这种排
序方法是(
) .
A. 归并排序
B. 快速排序
C. 直接插入排序
D. 堆排序
13. 在 AOE 网中,完成工程的最短时间是(
).
A.从源点到汇点的最短路径的长度
B.从源点到汇点的最长路径的长度
C.最长的回路的长度
D.最短的回路的长度
14. 设单链表中指针 p 指着结点 A,若要删除 A 之后的结点(若存在),则需要修改指针的操作
为(
).
A. p->next=p->next->next
B. p=p->next
C. p=p->next->next
D. p->next=p
15.下面的序列中,(
)是堆.
A. 1,2,8,4,3,9,10,5
B.1,5,10,6,7,8,9,2
C. 9,8,7,6,4,8,2,1
D.9,8,7,6,5,4,3,7
二.填空题(每空 2 分,共 20 分)
1. 线性结构中元素之间存在一对一关系,树型结构中元素之间存在
关系,
图型结构中元素之间存在
关系.
2. 单链表中设置头结点的作用是
.
3.由 n 个权值构成的哈夫曼树共有
个结点.
4. 已 知 一 个 图 的 邻 接 矩 阵 表 示 , 删 除 所 有 从 第 i 个 结 点 出 发 的 边 的 方 法
是
.
5. 队列只允许在表的一端插入,在另一端删除;插入的一端叫
,删除的一端
叫
;对队列的访问是按照
的原则进行的.
6. 在哈希查找方法中,要解决两方面的问题,它们分别是
及
.
三.判断题(每题 1 分,共 10 分,正确的选 t,错误的选 f)
1.已知一颗树的先序序列和后序序列,一定能构造出该树.
2.双循环链表中,任一结点的前驱指针均为不空.
(
(
3.对于 n 个记录的集合进行冒泡排序,在最坏情况下的时间复杂度是 O(n2).
(
4. 快速排序是排序算法中最快的一种.
(
)
)
)
)
5. 设有序的关键字序列是(2,5,8,9,12,14,16,18,20,22,25),当用折半查找
方法查找关键字 22 时,需经 3 次比较运算.
(
)
6.向二叉排序树中插入一个新结点,需要比较的次数可能大于此二叉树的高度 h. (
)
7.散列法存储的思想是由关键字值决定数据的存储地址。
8.连通图的广度优先搜索中可以采用队列来暂存刚访问过的顶点.
9. 一棵 m 阶 B-树中每个结点最多有 m 棵子树,非终端结点最少有 2 棵子树.
10. 冒泡排序是稳定的.
四.简答题(共 45 分)
(
)
(
)
(
(
)
)
1.已知一棵二叉树的中序为 CDBAGFHE, 后序为 DCBGHFEA,画出这棵二叉树.(6 分)
2.如图 1 所示的 AOE 网(V1 表示工程的开始,V8 表示工程的结束), 假设工程从时间 0 开始,
求出所有事件和活动允许发生的最早及最晚时间,并给出关键路径.( 14 分)
a7=7
a9=6
a8=3
V5
V6
1
a10=2
V7
1
V8
1
a2=3
V1
1
V2
1
a1=5
a3=2
a5=4
V3
1
V4
1
a4=12
a6=9
图 1
3.简述下列算法的功能.(6 分)
void process( Sqlist &L) //L 为线性表,用顺序存储结构表示
{ int
i=0, j;
While (i= S.Stacksize) {
S.base=(ElemType *) realloc(S.base,
(S.Stacksize+STACKINCREME) *
①
);
if (
②
) exit (OVERFLOW);
S.top=S.base+
③
;
S.Stacksize=S.Stacksize+STACKINCREMENT;
}
*S.top=
④
;
top=
⑤
;
return OK;
}
2.以下是图的广度遍历算法, 完成算法的空格部分.
Void BFSTraverse( Graph G, Status(*visit)(int v)) {
for (v=0;v=0 ; w=NextAdjVex(G,u,w ))
if ( ⑧
) {
Visited[w]=
⑨
;
Visit(w);
⑩
;
}
}
}
}
六.编写算法(25 分)
1. 设计将两个有序链表合并为一个有序链表的算法. 假设有序链表的元素按照非递减排
列.(10 分)
2. 给定带权有向图 G 和源点 V0, 设计 V0 到其余顶点的最短路径.(15 分)