武汉理工大学852数据结构考研真题试题2010—2014年

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

1
2
3
4
5
图8
A. 删除顶点 v3 B. 删除顶点 v5 C. 添加边<v2, v1> D. 添加边<v4, v5>
(9)设有 n 个关键字,散列查找法的平均查找长度是

A. O (1) B. O (n) C. O (log n) D. O (nlog n)
(10)在含有 12 个结点的平衡二叉排序树上,查找关键字为 35 的结点,被依次比较的关
B+树。画出这棵 B+树。然后再这个 B+树中删除关键字 48 和 38,分别画出删除后的 B+树。 (21)以{234,566,453,333,89,567,123,908,689,505}进行基数排序,要求写出每一趟排序 的排序过程。 四、算法设计题(48 分,每小题 16 分) (22)以单链表为存储结构,写一算法完成选择排序。 (23)huffman 树以静态三叉链存储,编写一个算法,求该树的帯权路径长度 WPL。 (24) 以顺序表为存储结构,从顺序表中删除重复的元素,并使剩余元素间的相对次序保持 不变。
武汉理工大学 2014 数据结构 852 试题
一、简答题(30 分,每小题 6 分)
(1)什么是算法?评价算法(或算法设计)依据的标准是什么?在保证正确性的前提下, 算法设计的首要目标是什么?算法复杂度分析涉及哪几个方面?
(2)队列的特点是什么?什么是循环队列?循环队列的优点是什么?
(3)已知某完全二叉树的第 7 层有 10 个叶子结点,请问该完全二叉树的结点总数为多少 (要求简述求解过程)?
武汉理工大学 2012 年数据结构研究生入学考试试题
一、选择题(30 分,每小题 2 分)
(1)在数据结构中,数据的基本单位是( )
A.数据项
B.数据元素
C.数据对象
D.数据文件
(2)评价算法的标准包括如下几个方面:正确性、(
)、健壮性、高效率及低存储
量。
A.可靠性
B.可行性
C.可读性
D.可能性
(3)下列关于二叉树遍历的叙述中, 正确的有:
(7)阅读下列算法,输出当 n=5 时 fib(5)的结果,分析该算法的时间复杂度和空间复杂 度。
int fib(int n){ int f; if (n==0) f=0; else if (n==1) f=1; else f=fib(n-2)+fib(n-1); printf("%d ",f); return f; }
武汉理工大学 2013 年数据结构研究生入学考试试题
一、选择题(24 分,每小题 2 分)
(1)算法分析的主要任务是分析:
A. 算法是否具有较好的可读性
B. 算法中是否存在语法错误
C. 算法的功能是否符合设计要求
D. 算法的执行时间和问题规模之间的关系
(2)某算法的时间复杂度为 O(2n),表明该算法的
键字有可能是:
A. 46,36,18,20,28,35 B. 47,37,18,27,36
C. 27,48,39,43,37 D. 15,45,55,35
(11)排序过程中,元素的移动次数与各元素原始的排列顺序无关的排序方法是( )
排序。
A. 简单选择
B. 快速
C. 堆
D. 归并
(12)对关键字序列(6,1,4,3,7,2,8,5)进行快速排序时,以第 1 个元素为基准的一
进行排序,求出 101 是这组数据中的第几个最小值,写出主要的求解过程。
(11)令 T=”ababaaccabbaabccbaba”,求其 next 函数值。
(12)如下图所示 AOE 网,求
2
6 e
3
2 a
c 4
4g
4 i
1
4
7
b 3
1d
2 h
j6
5
f 4
6
(12-1)计算每个顶点事件可能的最早发生时间和允许的最迟发生时间; (12-2)找出关键路径。
次划分的结果为(

A.(5,1,4,3,6,2,8,7) B.(5,1,4,3,2,6,7,8) C.(5,1,4,3,2,6,8,7) D.(8,7,6,5,4,3,2,1) 二、问答题(28 分,每小题 7 分) (13)二分查找的先决条件是什么?简述二分查找方法。说明为什么不能用单链表作为存储 结构? (14)栈和队列它们各自有什么特点?它们的共同点是什么?若入栈顺序是 ABC,写出所有 的出栈序列,若入队顺序是 ABC,出队序队呢? (15)分析当输入数据已经有序时快速排序算法的不足,提出算法的改进方案。 (16)图的遍历方法有哪两种?每种方法得到的遍历序列是唯一的吗?如果要给出遍历的非 递归算法,应该分别使用何种数据结构来实现? 三、计算题(50 分,每小题 10 分) (17)
三、应用题(50 分,每小题 10 分)
(8)假定用于通信的电文中仅使用 8 个字母 A,B,C,D,E,F,G,H,各字母使用的频率分别为
{2, 5, 5, 7, 9, 13, 26, 33}。以较小孩子为左子树构造 Huffman 树,为这 8 个字母设计 Huffman 编码,并求出该树的带权路径长度。
三、算法设计题(54 分,每小题 18 分)
要求: ① 用类 C 语言书写算法; ② 在算法中给出必要的类型描述和注释。
(13)以顺序表为存储结构,写一算法从线性表中删除重复的元素,并使剩余元素间的 相对次序保持不变。
(14)以二叉链为存储结构,编写一个算法,判断一个二叉树中是否是平衡二叉树。
(15) 设无向图 G 用邻接表的方式存储,写一用 kruskal 方法求其最小生成树的算法。
图 17 1. 写出该广义表 L; 2. 分别求出该广义表的深度和长度。 3. 画出其存储结构。 (18)已知树结点的前序序列是 abefcdg,后序序列是 efbcgda,画出这棵树的逻辑结构图。 (19)如下图 19 所示,对该有向无环图进行拓扑排序,求所有的拓扑序列。
图 19 (20)以{51,49,39,46,38,29,14,61,15,30,10,48,52,13,63,37,25,36 }构造一棵 5 阶

A.1020
B.1024
C.1036
D.1240
(8)由 m 棵结点数为 n 的树组成的森林,将其转化为一棵二叉树,则该二叉树中根结点的
右子树上具有的结点个数为
A.mn
B.mn-1
C.n(m-1)
D.m(n-1)
(9)下列所示各图中是中序线索化二叉树的是( )
(10)在一个具有 n 个顶点的无向图中,每个顶点度的最大值为( )
(4)对一个由 n 个关键字不同的记录构成的序列,能否用比 2n-3 少的次数选出该序列中 关键字取最大值和关键字取最小值的记录?简述如何实现?在最坏情况下至少进行多 少次比较?
(5)什么是广义表?请简述广义表与线性表的主要区别。
二、算法分析题(16 分,每小题 8 分)
(6)阅读下列算法 int search(elemtype r[ ],int n,keytype k){ int i =n; r[0].key=k; while(r[i].key!=k) i--; return(i); } (6-1)该算法的执行时间与那些因素有关? (6-2)该算法在等概率的情况下,查找成功和查找失败的平均查找长度是多少? (6-3)若表中关键字按升序排列时,算法可以改进吗?简述改进算法思想。改进后算 法在等概率的情况下,查找成功和查找失败的平均查找长度是多少?
(6) DIJKSTRA 方法是用来求______
A.深度遍历
B. 单源最短路径
C.拓扑排序
D.最
小生成树
(7)求图的最小生成树的方法是:
A.找 n-1 条最短路径
B.找 n-1 条最短边
C.找 n-1 条不构成回路的最小边 D.找从根到叶子结点的关键路径
(8)在如图 8 所示有向图中,( ), 即可得到一个强连通图。
,j=1..8
A.01112312 B.01112345 C.01112311 D.11112311
(5)在任何一棵二叉树中,如果结点 a 有左孩子 b、右孩子 c,则在结点的前序序列、中序
序列、后序序列中,

A. 结点 b 一定在结点 a 的前面 B. 结点 a 一定在结点 c 的前面
C. 结点 b 一定在结点 c 的前面 D. 结点 a 一定在结点 b 的前面
(9)将下列关键字序列{16,20,21,35,3,8,4,45,36,19} 按散列法依次存入数组 ht[0..16]中,选用散列函数 hash( k ) = k %17 , 用二次探测法处理冲突,要求构造散 列表,并求出在等概率下的查找成功和查找失败时的平均查找长度。
(10)对关键字序列 {161,738,092,485,637,101,021,530,791,306,121,892,723,556,008,566}
A.O(1)
B.O(nlog2n)
C.O(n)
D.O(n2)
二、计算题(60 分,每小题 10 分) (16)循环队列用 a[18]表示,front:队首指针,rear:队尾指针。初值:front=rear=0。画
出: ① 队列的初始状态; ② abcdefghijklmn 入队后的状态; ③ abcd 出队后的状态; ④ opqrst 入队后的状态。 (17)广义表 L=(5,(3,2,(14,9,3),(),4),2,(6,3,10)) ① 求广义表的长度和深度; ② 求 tail(head(tail (L))) ③ 画出广义表的存储结构。 (18)假定用于通信的电文中仅使用 8 个字母,各字母使用的频率分别为:

A. 问题规模是 2n C. 执行时间与 2n 成正比
B. 执行时间等于 2n D. 问题规模与 2n 成正比
(3) 对于只在表的首、尾两端进行插入操作的线性表,宜采用的存储结构为______。
A.顺序表
B.用头指针表示的单循环链表
C.用尾指针表示的单循环
D.单链表
(4)若模式串为 “abcabccb”, 则 next[j]=
B. 平衡因子为 0
C. 左子树度数和右子树度数相差不超过 1
D. 左子树深度(高度)和右子树深度(高度)相差不超过 1
(13)若模式串为 “abcabcac”, 则 next[j]=”______”, j=1..8
A.01112312 B.01112345 C.11112312 D.11112345
A. 若一个结点是某二叉树中序的最后一个结点, 则必是该二叉树的前序最后一个结
点.
B. 若一个结点是某二叉树前序的最后一个结点, 则必是该二叉树的中序最后一个结
点.
C. 若一个叶子是某二叉树中序的最后一个结点, 则必是该二叉树的前序最后一个结
点.
D. 若一个叶子是某二叉树前序的最后一个结点, 则必是该二叉树的中序最后一个结
{ x=r[0]=r[i];
while (i<j)
{ while ( i<j && r[j]>=r[0])
j--;
r[i] = r[j];
while (i<j && r[i]<=r[0])
i++;
r[j] = r[i];
}
r[i] = r[0];
return i;
} // Partition
算法 Partition 的时间复杂度是:
点.
(4)长度为 n 的顺序表,在任何位置上删除一个元素的概率相等,删除一个元素时平均移
动( )个元素。
Hale Waihona Puke A.(n+1)/2 B.n/2
C.(n-1)/2
D.(n-2)/2
(5)设栈的输入序列是 a,b,c,d,则所得到的输出序列(输入过程中允许出栈)不可
能出现的是( )
A. a,b,c,d B. a,b,d,c C. d,c,b,a D. c,d,a,b
(6)判断两个串大小的基本准则是
A.两个串长度的大小
B.两个串中首字符的大小
C.两个串中大写字母的多少 D.对应的第一个不等字符的大小
(7)二维数组 A[10][6]采用行优先的存储方法,若每个元素占 4 个存储单元,已知元素
A[3][4]的存储地址为 1000,则元素 A[4][3]的存储地址为(
(14)对下列关键字序列进行快速排序时,所需进行比较次数最少的是:
A.(1,2,3,4,5,6,7,8) B.(8,7,6,5,4,3,2,1)
C.(4,3,8,6,1,7,5,2) D.(2,1,5,4,3,6,7,8)
(15)int Partition (int r[ ],int i, int j)
A.n-1
B.n
C.n+1
D.2(n-1)
(11)如下图 11 所示,从顶点 1 出发广度优先遍历图,其广度遍历序列是:
1 3
2 4
5
6
7
8
图 11
A.12356478 B.12345678
C.12354678 D.13572468
(12)在平衡二叉排序树中,每个结点
A. 左子树结点个数和右子树结点个数相差不超过 1
相关文档
最新文档