824数据结构与算法设计A
西安科技大学824数据结构与算法设计A2009年考研真题答案
4.已知一组关键字为{26,36,41,38,44,15,68,12,19,51},用除余
法构造散列函数 h(key)=key%13,散列表为 T[0…12]。若用线性探测解决冲突。
画出散列表,并求出在等概率下查找成功时的平均探查次数;若用拉链法解决
冲突,重新画出散列表,并求出在等概率下查找成功时的平均探查次数。
一、判断题(下列各题,你认为正确的,请在题干的括号内打“√”,错的 打“×”。每题 1 分,共 10 分) (×)1.树形结构是非线性结构,所以只能用非顺序结构存储。 (×)2.线性表就是顺序表。 (√)3.有向图用邻接矩阵表示时,顶点 i 的入度等于邻接矩阵中第 i 列元素 之和。 (√)4.理想状态下,在散列表中查找一个元素的时间复杂度为 O(1)。 (√)5.单链表是线性表的链式存储表示。 (×)6.完全二叉树一定是满二叉树。 (×)7.由二叉树的先序遍历序列和后序遍历序列可以唯一确定二叉树。 (√)8.Dijkstra 算法是求非负权图中给定点到其余各点最短路径的有效算法。 (√)9.快速排序在最坏情况下的时间复杂度为 O(n2 ) 。 (√)10.队列是一种插入与删除操作分别在表的两端进行的线性表,是一种 先进先出型结构。 二、单选题(每题 1 分,共 10 分)
ACCCBABDDA 三、填空题(每题 2 分,共 20 分) 1.链表中逻辑上相邻的元素的物理位置不必相邻。 2.循环单链表 S 为空表的条件是 S->next= =S。 3.二维数组 a[5][6],数组的起始地址 loc[0][0]=1000,元素长度为 2,则在行 优先及列优先顺序存放方式下元素 a[2][5]的地址 loc[2][5]为 1034。 4.常见的图的存储结构有邻接矩阵、邻接表等。
2022年成都信息工程大学计算机科学与技术专业《数据结构与算法》科目期末试卷A(有答案)
2022年成都信息工程大学计算机科学与技术专业《数据结构与算法》
科目期末试卷A(有答案)
一、选择题
1、从未排序序列中依次取出一个元素与已排序序列中的元素依次进行比较,然后将其放
在已排序序列的合适位置,该排序方法称为()排序法。
A.插入
B.选择
C.希尔
D.二路归并
2、哈希文件使用哈希函数将记录的关键字值计算转化为记录的存放地址,因为哈希函数
是一对一的关系,则选择好的()方法是哈希文件的关键。
A.哈希函数
B.除余法中的质数
C.冲突处理
D.哈希函数和冲突处理
3、以下数据结构中,()是非线性数据结构。
A.树
B.字符串
C.队
D.栈
4、向一个栈顶指针为h的带头结点的链栈中插入指针s所指的结点时,应执行()。
A.h->next=s
B.s->next=h
C.s->next=h;h->next=s
D.s->next=h-next;h->next=s
5、下面关于串的叙述中,不正确的是()。
A.串是字符的有限序列
B.空串是由空格构成的串
C.模式匹配是串的一种重要运算
D.串既可以采用顺序存储,也可以采用链式存储
6、已知字符串S为“abaabaabacacaabaabcc”,模式串t为“abaabc”,采用KMP算法进行匹配,第一次出现“失配”(s!=t)时,i=j=5,则下次开始匹配时,i和j的值分别()。
A.i=1,j=0 B.i=5,j=0 C.i=5,j=2 D.i=6,j=2
7、若元素a,b,c,d,e,f依次进栈,允许进栈、退栈操作交替进行,但不允许连续三次进行退栈操作,则不可能得到的出栈序列是()。
2022年沈阳师范大学计算机科学与技术专业《数据结构与算法》科目期末试卷A(有答案)
2022年沈阳师范大学计算机科学与技术专业《数据结构与算法》科目
期末试卷A(有答案)
一、选择题
1、将线性表的数据元素进行扩充,允许带结构的线性表是()。
A.串
B.树
C.广义表
D.栈
2、无向图G=(V,E),其中:V={a,b,c,d,e,f},E={(a,b),(a, e),(a,c),(b,
e),(c,f),(f,d),(e,d)},对该图进行深度优先遍历,得到的顶点序列正确的是()。
A.a,b,e,c,d,f
B.a,c,f,e,b,d
C.a,e,b,c,f, d
D.a,e,d,f,c,b
3、以下数据结构中,()是非线性数据结构。
A.树
B.字符串
C.队
D.栈
4、已知串S='aaab',其next数组值为()。
A.0123
B.1123
C.1231
D.1211
5、动态存储管理系统中,通常可有()种不同的分配策略。
A.1
B.2
C.3
D.4
6、下列选项中,不能构成折半查找中关键字比较序列的是()。
A.500,200,450,180 B.500,450,200,180
C.180,500,200,450 D.180,200,500,450
7、排序过程中,对尚未确定最终位置的所有元素进行一遍处理称为一趟排序。下列排序方法中,每一趟排序结束时都至少能够确定一个元素最终位置的方法是()。
Ⅰ.简单选择排序Ⅱ.希尔排序Ⅲ.快速排序Ⅳ.堆排Ⅴ.二路归并排序
A.仅Ⅰ、Ⅲ、Ⅳ B.仅Ⅰ、Ⅱ、Ⅲ C.仅Ⅱ、Ⅲ、Ⅳ D.仅Ⅲ、Ⅳ、Ⅴ
8、一棵非空的二叉树的前序序列和后序序列正好相反,则该二叉树一定满足()。
A.其中任意一个结点均无左孩子
西安科技大学824数据结构与算法设计2007年考研真题答案
能否将结点*p 从相应的链表中删除?
答:以下分 3 种链表讨论:
(1)单链表。当已知指针 p 指向某结点时,能够根据该指针找到其直接后继,但是由
于不知道其头指针,所以无法访问到 p 指针指向的结点的直接前趋,因此无法删去该结点。
(2)双链表。由于这样的链表提供双向链表,因此根据已知结点可以查找到其直接前
二、简答题(每题 5 分,共 30 分)
1.对含有 n 个互不相同元素的集合,同时找最大元和最小元至少需进行多少次比较?
答:设变量 max 和 min 用于存放最大元和最小元(的位置),第一次取两个元素进行比
较,大的放入 max,小的放入 min。从第 2 次开始,每次取一个元素先和 max 比较,如果
8. 45
9. SXSSXSXX
10. 双亲表示法、孩子表示法、孩子兄弟表示法、多重链表表示法(回答三个得全分)
11. 49
12. 从源点到汇点的最长路径
13. 边较多的稠密图、边较少的稀疏图
14. 排序前后在外存,排序时数据调入内存的排序方法
15. 值均匀分布于表空间以减少冲突;函数尽可能简单以方便计算
大于 max 则以它替换 max,并结束本次比较;若小于 max 则再与 min 相比较,在最好的情
况下,一路比较下去都不用和 min 相比较,所以这种情况下,至少要进行 n-1 次比较就能
2022年文华学院计算机科学与技术专业《数据结构与算法》科目期末试卷A(有答案)
2022年文华学院计算机科学与技术专业《数据结构与算法》科目期末
试卷A(有答案)
一、选择题
1、将线性表的数据元素进行扩充,允许带结构的线性表是()。
A.串
B.树
C.广义表
D.栈
2、用有向无环图描述表达式(A+B)*((A+B)//A),至少需要顶点的数目为()。
A.5
B.6
C.8
D.9
3、单链表中,增加一个头结点是为了()。
A.使单链表至少有一个结点
B.标识表结点中首结点的位置
C.方便运算的实现
D.说明单链表是线性表的链式存储
4、最大容量为n的循环队列,队尾指针是rear,队头:front,则队空的条件是()。
A.(rear+1)MOD n=front
B.rear=front
C.rear+1=front
D.(rear-1)MOD n=front
5、在下列表述中,正确的是()
A.含有一个或多个空格字符的串称为空格串
B.对n(n>0)个顶点的网,求出权最小的n-1条边便可构成其最小生成树
C.选择排序算法是不稳定的
D.平衡二叉树的左右子树的结点数之差的绝对值不超过l
6、下列选项中,不能构成折半查找中关键字比较序列的是()。
A.500,200,450,180 B.500,450,200,180
C.180,500,200,450 D.180,200,500,450
7、排序过程中,对尚未确定最终位置的所有元素进行一遍处理称为一趟排序。下列排序方法中,每一趟排序结束时都至少能够确定一个元素最终位置的方法是()。
Ⅰ.简单选择排序Ⅱ.希尔排序Ⅲ.快速排序Ⅳ.堆排Ⅴ.二路归并排序
A.仅Ⅰ、Ⅲ、Ⅳ B.仅Ⅰ、Ⅱ、Ⅲ C.仅Ⅱ、Ⅲ、Ⅳ D.仅Ⅲ、Ⅳ、Ⅴ
2022年北京石油化工学院计算机科学与技术专业《数据结构与算法》科目期末试卷A(有答案)
2022年北京石油化工学院计算机科学与技术专业《数据结构与算法》
科目期末试卷A(有答案)
一、选择题
1、将线性表的数据元素进行扩充,允许带结构的线性表是()。
A.串
B.树
C.广义表
D.栈
2、无向图G=(V,E),其中:V={a,b,c,d,e,f},E={(a,b),(a, e),(a,c),(b,
e),(c,f),(f,d),(e,d)},对该图进行深度优先遍历,得到的顶点序列正确的是()。
A.a,b,e,c,d,f
B.a,c,f,e,b,d
C.a,e,b,c,f, d
D.a,e,d,f,c,b
3、以下与数据的存储结构无关的术语是()。
A.循环队列
B.链表
C.哈希表
D.栈
4、动态存储管理系统中,通常可有()种不同的分配策略。
A.1
B.2
C.3
D.4
5、已知有向图G=(V,E),其中V={V1,V2,V3,V4,V5,V6,V7}, E={<V1,V2>,<V1,V3>,<V1,V4>,<V2,V5>,<V3,V5>, <V3,V6>,<V4,V6>,<V5,V7>,<V6,V7>},G的拓扑序列是()。
A.V1,V3,V4,V6,V2,V5,V7
B.V1,V3,V2,V6,V4,V5,V7
C.V1,V3,V5,V2,V6,V7
D.V1,V2,V5,V3,V4,V6,V7
6、排序过程中,对尚未确定最终位置的所有元素进行一遍处理称为一趟排序。下列排序方法中,每一趟排序结束时都至少能够确定一个元素最终位置的方法是()。
西安科技大学824数据结构与算法设计2007-2015年考研真题
C.front=(front-1)%m
D.front=(front+1)%m
(13)对于广义表 A,若 head(A) =tail(A),则 A 为( )。
A.(( ))
B.( )
C.(( ),( ))
D.(( ),( ),( ))
(14)若一棵具有 n 个结点的二叉树的先序遍历和后序遍历的次序正好相反,则该二叉树
一、单项选择题(每小题 2 分,共 30 分)
(1)并归排序的时间复杂度是( )。
A.O(n2)
B.O(nlog2n)
C.O(n)
D.O(log2n)
(2)设一个链表最常用的操作是在末尾插入结点和删除尾结点,选用( )存储结构最节
省时间。
A.单链表
B.单循环链表
C.带尾指针的单循环链表
D.带头结点的双循环链表
(a)画出堆排序的初始堆(大根堆);
(b)画出第 2 次重建堆之后的堆。
(2)已知关键字序列为{56,23,41,79,38,62,18},用散列函数 H(key)=key%11 将其散列到
散列表 HT[0…10]中,采用线性探测法处理冲突,请回答下列问题:
(a)画出散列存储后的散列表;
(b)求在等概率下查找成功的平均查找长度。
中,运行效率最高的是
。
共 5页
第 2页
西安科技大学824数据结构与算法设计A2008年考研真题答案
1 设置一个布尔变量以区别队满还是队空;
2 浪费一个元素的空间,用于区别队满还是队空。
3 使用一个计数器记录队列中元素个数(即队列长度)。
我们常采用法②,即队头指针、队尾指针中有一个指向实元素,而另一个指
向空闲元素。
判断循环队列队空标志是: f=rear
队满标志是:f=(r+1)%N
3.递归算法比非递归算法花费更多的时间,对吗?为什么?
1.多对多关系
2. n-i+1
3. O(1)
4. 若查找的 x 为 a[0],则 Best case:O(n)=1
若查找的 x 为 a[n-1],则,Worst case:O(n)=n
average case : O(n)=(n+1)/2;
空间复杂度为:O(n)=1
5. 线性 , 任何 , 栈顶 , 队尾 , 队首
答:不一定(2 分)。时间复杂度与样本个数 n 有关,是指最深层的执行语句
耗费时间,而递归算法与非递归算法在最深层的语句执行上是没有区别的,
循环的次数也没有太大差异。仅仅是确定循环是否继续的方式不同,递归用
共 8页
第 2页
栈隐含循环次数,非递归用循环变量来显示循环次数而已。 4. 在单链表、双链表和单循环链表中,若仅知道指针 p 指向某结点,不知道头指 针,能否将结点*p 从相应的链表中删去?若可以,其时间复杂度各为多少?
西安科技大学824数据结构与算法设计B2008年考研真题答案
5.D 10.A
三、解答题(任选 6 题,每题 10 分,共 60 分)
1.【解答】: (1)由于表长 n 已给定,此时证明理想的块长度应为 n ,即
b= n = 100000 =100
(2)由于采用等分区间顺序检索方法进行检索,长度为 n 的表就分成
s= ┏n/b┑=┏10000/10┑=100 块 (3)平均检索长度为:ASL=(b+s)/2+1=(100+100)/2+1=101
当 n=1 时,前、中序序列均只有一个元素且相同,即为根,由此唯一确 定一个二叉树。
假设 n<m-1 时结论成立,则证明 n=m 时成立。 假设前序序列为 a1,a2,…,am,中序序列为 b1,b2,…,bm。 因为前序序列由前序遍历而得,则 a1 即为根结点的元素,又中序序列由 中序遍历而得,则在中序序列中必能找到与 a1 相同的元素,设为 bj,由此 可以得到{b1,…,bj-1}为左子树的中序序列,{bj+1,…,bm}为右子树的中序 序列。 若 j=1,即 b1 为根,此时二叉树的左子树为空,{a2,…,am}为右子树的 前序序列,{b2,…,bm}为右子树的中序序列。右子树的结点数为 m-1。由此, 这两个序列唯一确定了右子树,也唯一确定了二叉树。 若 j=m , 即 bm 为 根 , 此 时 二 叉 树 的 右 子 树 为 空 , 同 上 , 子 序 列 {a2,…,am}{b1,…,bm-1}唯一确定左子树。 若 2<=j<=m-1,则子序列{a2,…,aj}{b1,…,bj-1}唯一确定了左子树, 子序列{aj+1,…,am}{bj+1,…,bm}唯一确定了右子树。 由此证明了唯一的根及其左右子树只能构成一棵确定的二叉树。 同理,中序、后序序列可唯一确定一棵二叉树。 4【解答】(9 分) 一棵二叉树的先序序列、中序序列、后序序列如下,填空使之完整 先序: (A)B(D)F(K)I C E H(J ) G 中序: D(B)K F I A(H)E J(C)( G ) 后序: (D)K(I)F B H J(E)G(C) A 5.【解答】 (1)表长为 14,运用除留余数法作哈希函数,选择一个最接近 14 的一个素 数 13 作为除数,该哈希函数为 H(key)=key MOD 13。 (2)用线性探测再散列法解决冲突,各关键字在表中的位置如下所示:
2022年西安工业大学计算机科学与技术专业《数据结构与算法》科目期末试卷A(有答案)
2022年西安工业大学计算机科学与技术专业《数据结构与算法》科目
期末试卷A(有答案)
一、选择题
1、下列说法不正确的是()。
A.图的遍历是从给定的源点出发每个顶点仅被访问一次
B.遍历的基本方法有两种:深度遍历和广度遍历
C.图的深度遍历不适用于有向图
D.图的深度遍历是一个递归过程
2、下列排序算法中,占用辅助空间最多的是()。
A.归并排序
B.快速排序
C.希尔排序
D.堆排序
3、以下与数据的存储结构无关的术语是()。
A.循环队列
B.链表
C.哈希表
D.栈
4、在用邻接表表示图时,拓扑排序算法时间复杂度为()。
A.O(n)
B.O(n+e)
C.O(n*n)
D.O(n*n*n)
5、下面关于串的叙述中,不正确的是()。
A.串是字符的有限序列
B.空串是由空格构成的串
C.模式匹配是串的一种重要运算
D.串既可以采用顺序存储,也可以采用链式存储
6、若一棵二叉树的前序遍历序列为a,e,b,d,c,后序遍历序列为b, c,d,e,a,则根结点的孩子结点()。
A.只有e B.有e、b C.有e、c D.无法确定
7、下列关于无向连通图特性的叙述中,正确的是()。
Ⅰ.所有的顶点的度之和为偶数Ⅱ.边数大于顶点个数减1 Ⅲ.至少有一个顶点的度为1
A.只有Ⅰ B.只有Ⅱ C.Ⅰ和Ⅱ D.Ⅰ和Ⅲ
8、有关二叉树下列说法正确的是()。
A.二叉树的度为2
B.一棵二叉树的度可以小于2
C.二叉树中至少有一个结点的度为2
D.二叉树中任何一个结点的度都为2
9、已知一棵二叉树的前序遍历结果为ABCDEF,中序遍历结果为CBAEDF,则后序遍历结果为()。
2022年武汉轻工大学计算机科学与技术专业《数据结构与算法》科目期末试卷A(有答案)
2022年武汉轻工大学计算机科学与技术专业《数据结构与算法》科目
期末试卷A(有答案)
一、选择题
1、设有一个10阶的对称矩阵A,采用压缩存储方式,以行序为主存储, a11为第一元素,其存储地址为1,每个元素占一个地址空间,则a85的地址为()。
A.13
B.33
C.18
D.40
2、已知广义表LS=((a,b,c),(d,e,f)),用head和tail数取出LS中原子e
的运算是()。
A.head(tail(LS))
B.tail(head(LS))
C.head(tail(head(tail(LS))))
D.head(tail(tail(head(LS))))
3、以下数据结构中,()是非线性数据结构。
A.树
B.字符串
C.队
D.栈
4、在用邻接表表示图时,拓扑排序算法时间复杂度为()。
A.O(n)
B.O(n+e)
C.O(n*n)
D.O(n*n*n)
5、向一个栈顶指针为h的带头结点的链栈中插入指针s所指的结点时,应执行()。
A.h->next=s
B.s->next=h
C.s->next=h;h->next=s
D.s->next=h-next;h->next=s
6、排序过程中,对尚未确定最终位置的所有元素进行一遍处理称为一趟排序。下列排序
方法中,每一趟排序结束时都至少能够确定一个元素最终位置的方法是()。
Ⅰ.简单选择排序Ⅱ.希尔排序Ⅲ.快速排序Ⅳ.堆排Ⅴ.二路归并排序
A.仅Ⅰ、Ⅲ、Ⅳ B.仅Ⅰ、Ⅱ、Ⅲ C.仅Ⅱ、Ⅲ、Ⅳ D.仅Ⅲ、Ⅳ、Ⅴ
7、下列关于无向连通图特性的叙述中,正确的是()。
2022年哈尔滨师范大学计算机科学与技术专业《数据结构与算法》科目期末试卷A(有答案)
2022年哈尔滨师范大学计算机科学与技术专业《数据结构与算法》科
目期末试卷A(有答案)
一、选择题
1、将线性表的数据元素进行扩充,允许带结构的线性表是()。
A.串
B.树
C.广义表
D.栈
2、有一个100*90的稀疏矩阵,非0元素有10个,设每个整型数占2字节,则用三元组表示该矩阵时,所需的字节数是()。
A.60
B.66
C.18000
D.33
3、连续存储设计时,存储单元的地址()。
A.一定连续
B.一定不连续
C.不一定连续
D.部分连续,部分不连续
4、用不带头结点的单链表存储队列,其队头指针指向队头结点,队尾指针指向队尾结点,则在进行出队操作时()。
A.仅修改队头指针
B.仅修改队尾指针
C.队头、队尾指针都可能要修改
D.队头、队尾指针都要修改
5、已知有向图G=(V,E),其中V={V1,V2,V3,V4,V5,V6,V7}, E={<V1,V2>,<V1,V3>,<V1,V4>,<V2,V5>,<V3,V5>, <V3,V6>,<V4,V6>,<V5,V7>,
<V6,V7>},G的拓扑序列是()。
A.V1,V3,V4,V6,V2,V5,V7
B.V1,V3,V2,V6,V4,V5,V7
C.V1,V3,V5,V2,V6,V7
D.V1,V2,V5,V3,V4,V6,V7
6、下列叙述中,不符合m阶B树定义要求的是()。
A.根结点最多有m棵子树 B.所有叶结点都在同一层上
C.各结点内关键字均升序或降序排列 D.叶结点之间通过指针链接
数据结构和算法课程设计题目
北方民族大学课程设
计
课程名称:数据结构与算法
院(部)名称:信息与计算科学学院
组长姓名学号
同组人员姓名
指导教师姓名:纪峰
设计时间:2010.6.7----2009.6.27
一、《数据结构与算法》课程设计参考题目
(一)参考题目一(每位同学选作一个,同组人员不得重复)
1、编写函数实现顺序表的建立、查找、插入、删除运算。
2、编写函数分别实现单链表的建立、查找、插入、删除、逆置算法。
3、编写函数实现双向链表的建立、插入、删除算法。
4、编写函数实现顺序栈的进栈、退栈、取栈顶的算法。
5、编写函数实现链栈的进栈、退栈、取栈顶的算法。
6、编写函数实现双向顺序栈的判空、进栈、出栈算法。
7、编写函数实现循环队列的判队空、取队头元素、入队、出队算法。
8、编写函数实现链环队列的判队空、取队头节点、入队、出队算法。
9、编写函数实现串的,求串长、连接、求字串、插入、删除等运算。
10、分别实现顺序串和链串的模式匹配运算。
11、实现二叉树的建立,前序递归遍历和非递归遍历算法。
12、实现二叉树的建立,中序递归遍历和非递归遍历算法。
13、实现二叉树的建立,后序递归遍历和非递归遍历算法。
14、实现二叉树的中序线索化,查找*p结点中序下的前驱和后继结点。
15、分别以临接表和邻接矩阵作为存储就够实现图的深度优先搜索和广度优先搜索
算法。
16、利用线性探测处理冲突的方法实现散列表的查找和插入算法。
(二)参考题目二(每三人一组,任选三个题目完成)
1.运动会分数统计(限1人完成)
任务:参加运动会有n个学校,学校编号为1……n。比赛分成m个男子项目,和w个女子项目。项目编号为男子1……m,女子m+1……m+w。不同的项目取前
2022年南京邮电大学计算机科学与技术专业《数据结构与算法》科目期末试卷A(有答案)
2022年南京邮电大学计算机科学与技术专业《数据结构与算法》科目
期末试卷A(有答案)
一、选择题
1、用有向无环图描述表达式(A+B)*((A+B)//A),至少需要顶点的数目为()。
A.5
B.6
C.8
D.9
2、将两个各有N个元素的有序表归并成一个有序表,其最少的比较次数是()。
A.N
B.2N-1
C.2N
D.N-1
3、某线性表中最常用的操作是在最后一个元素之后插入一个元素和删除第一个元素,则
采用()存储方式最节省运算时间。
A.单链表
B.仅有头指针的单循环链表
C.双链表
D.仅有尾指针的单循环链表
4、最大容量为n的循环队列,队尾指针是rear,队头:front,则队空的条件是()。
A.(rear+1)MOD n=front
B.rear=front
C.rear+1=front
D.(rear-1)MOD n=front
5、在下列表述中,正确的是()
A.含有一个或多个空格字符的串称为空格串
B.对n(n>0)个顶点的网,求出权最小的n-1条边便可构成其最小生成树
C.选择排序算法是不稳定的
D.平衡二叉树的左右子树的结点数之差的绝对值不超过l
6、若一棵二叉树的前序遍历序列为a,e,b,d,c,后序遍历序列为b, c,d,e,a,
则根结点的孩子结点()。
A.只有e B.有e、b C.有e、c D.无法确定
7、若元素a,b,c,d,e,f依次进栈,允许进栈、退栈操作交替进行,但不允许连续三
次进行退栈操作,则不可能得到的出栈序列是()。
8、已知一棵二叉树的前序遍历结果为ABCDEF,中序遍历结果为CBAEDF,则后序遍历结果为()。
西安科技大学824数据结构与算法设计B2009年考研真题答案
1.前驱结点, O(n) 2、顺序存储 有序 3、入栈 出栈
4、2n-1
5、0
6、1034
1054
四、简答题(每题 4 分,共 20 分)
共 6页
第 1页
1、什么是最小生成树?求解最小生成树的方法有哪些? 答:在连通网上寻找生成树,使其生成树上各边的权值之和最小,我们称其为 最小生成树。 最小生成树的方法有:Prim 算法、Kruskal 算法。 2、设长度为 n 的链队列用单循环链表表示,若只设头指针,则入队、出队操 作的时间为何? 答:当只设头指针时,出队的时间为 1,而入队的时间需要 n,因为每次入队 均需从头指针开始查找,找到最后一个元素时方可进行入队操作。 3、什么查找?查找有那些基本方法? 答:查找是根据给定的关键字值,在特定的列表中确定一个其关键字与给定值 相同的数据元素,并返回该数据元素在列表中的位置。 基于线性表的查找法:顺序查找法、 折半查找法、分块查找法 基于树的查找法:二叉排序树和 B 树 哈希查找法。 4、试找出分别满足下面条件的所有二叉树:
(√)4、队列是一种插入与删除操作分别在表的两端进行的线性表,是一种
先进先出型结构。
(×)5、单链表从任何一个结点出发,都能访问到所有结点。
(×)6、如果一个二叉树中没有度为 1 的结点,则必为满二叉树。
(√)7、理想状态下,在散列表中查找一个元素的时间复杂度为 O(1)。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
西安科技大学
2013年硕士研究生入学考试试题A
───────────────────────────────── 科目编号:824 科目名称: 数据结构与算法设计
考生须知:
1、 答案必须写在答题纸上,写在试题或草稿纸上不给分。
2、 答题须用蓝、黑色钢笔或圆珠笔,用铅笔、红色笔者不给分。
3、 答题必须写清题号,字迹要清楚,卷面要保持整洁。
4、 试题要随答题纸一起交回。
一、单项选择题(每小题2分,共30分)
(1)并归排序的时间复杂度是( )。
A .O(n 2)
B .O(nlog 2n)
C .O(n)
D .O(log 2n)
(2)设一个链表最常用的操作是在末尾插入结点和删除尾结点,选用( )存储结构最节省时间。
A .单链表
B .单循环链表
C .带尾指针的单循环链表
D .带头结点的双循环链表
(3)散列文件是一种( )。
A .顺序文件
B .索引文件
C .链接文件
D .计算机寻址文件
(4)常用于函数调用的数据结构是( )。
A .栈
B .队列
C .数组
D .链表
(5)两个矩阵sn ms B A ,相乘的时间复杂度是( )。
A .O(n 2)
B .O(s 2)
C .O(msn)
D .O(mn)
(6)图的广度优先搜索遍历使用的数据结构是( )。
A .栈
B .队列
C .集合
D .树
(7)在单链表中,每个存贮结点有两个域,即数据域和指针域,指针域指向该结点的( )。
A .直接前驱
B .直接后继
C .开始结点
D .终端结点
(8)在已知头指针的单链表中,要在其尾部插入一个新结点,其时间复杂度是( )。
A .O(n 2)
B .O(1)
C .O(n)
D .O(log 2n)
(9)在链队列中执行入队操作,( )。
A .需判断队是否为空
B .限定在链表头p 进行
C .需判断队是否为满
D .限定在链表尾p 进行
(10)对序列(95,83,62,70)进行冒泡排序(由小到大),第2趟排序后的结果为( )。
A .(70,83,62,95)
B .(70,62,83,95)
C.(62,70,83,95)D.(83,62,70,95)
(11)下列选项中与数据的存储结构无关的术语是()。
A.栈B.链队列C.顺序表D.链表
(12)已知循环队列的存贮空间大小为m,对头指针front指向对头元素,对尾指针rear 指向对尾元素的下一个位置,则向对列中插入新元素时,修改指针的操作是()。
A.rear=(rear-1)%m B.rear=(rear+1)%m
C.front=(front-1)%m D.front=(front+1)%m
(13)对于广义表A,若head(A) =tail(A),则A为()。
A.(( )) B.( ) C.(( ),( )) D.(( ),( ),( ))
(14)若一棵具有n个结点的二叉树的先序遍历和后序遍历的次序正好相反,则该二叉树应是()。
A.结点均无左孩子的二叉树B.高度为n的二叉树
C.结点均无右孩子的二叉树D.存在度为2的结点的二叉树
(15)平均时间复杂度为O(nlog2n)的稳定排序算法是()。
A.快速排序B.堆排序C.归并排序D.冒泡排序
二、填空题(每小题2分,共20分)
(1)数据结构由数据的逻辑结构、存贮结构和数据的三部分组成。
(2)广义表A=(a, b, (c, d, (e, f )), G)的长度为。
(3)以数据集{25,4,15,5,1}为权值构造一棵哈夫曼树,其带权路径长度为。(4)在高度为h的具有n个结点的二叉排序树中,查找任一结点的最多比较次数是。
(5)若某哈夫曼树有m个叶子结点,则该哈夫曼树共有个结点。
(6)向一个栈顶指针为top的链栈中插入一个新结点*p时,应执行p->next=top和操作。
(7)在队列中,允许插入的一端称为。
(8)在一棵二叉树中,度为1的结点数是3,度为2的结点数是4,则该二叉树有个叶子结点。
(9)具有n个顶点的连通无向图,其生成树有条边。
(10)当关键字序列基本有序时,快速排序、简单选择排序和直接插入排序三种排序算法中,运行效率最高的是。
三、简答题(任选5道题,每小题8分,共40分)
(1)什么是线性表?通常有哪些存贮方式?其各自的优缺点是什么?
(2)什么是顺序队列的“假溢出”现象?有哪些处理方式?如何判断队满和队空?(3)什么是二叉树的顺序存储方式?其优缺点有哪些?
(4)图的存储结构有哪些?其各自的优缺点是什么?
(5)静态查找有哪三种方法?各自的查找效率如何?
(6)什么样的图其最小生成树是唯一的?用Prim和Kruskal算法求最小生成树的时间复杂度各为多少?他们分别适合于哪种类型的图?
四、应用题(每小题10分,共40分)
(1)已知待排序记录的关键字序列为{25,96,11,63,57,78,44},请回答下列问题:(a)画出堆排序的初始堆(大根堆);
(b)画出第2次重建堆之后的堆。
(2)已知关键字序列为{56,23,41,79,38,62,18},用散列函数H(key)=key%11将其散列到散列表HT[0…10]中,采用线性探测法处理冲突,请回答下列问题:
(a)画出散列存储后的散列表;
(b)求在等概率下查找成功的平均查找长度。
(3)已知某二叉排序树(结点值大小按字母顺序)的前序遍历序列为EBACDFHG,请回答下列问题:
(a)画出此二叉排序树;
(b)若将此二叉排序树看作森林的二叉链表存储,画出对应的森林。
(4)下图所示是一带权有向图的邻接表法存储表示。其中出边表中的每个结点均含有三个字段,依次为边的另一个顶点在顶点表中的序号、边上的权值和指向下一个边结点的指针。请回答下列问题:
(a)画出该带权有向图的图形;
(b)从顶点V1为起点的广度优先遍历的顶点序列及对应的生成树;
(c)以顶点V1为起点的深度优先遍历的顶点序列及对应的生成树;
(d)由顶点V1到顶点V3的最短路径。
(顶点边)(出边表)
2
3
4
5
6