数据结构试题库集及答案

导读:答案:,A.要排序的数据量太大B.要排序的数据中有多个相同值C.要排序的数据已基本有序D,若初始数据基本正序,若初始数据基本反序,答案:递增排列递减排列,答案:初始:54,答案:初始:10,答案:418,1)答案:,答案:(1)希尔、快速、堆、归并(2)归并,第一章概论自测题答案,1.数据结构被形式地定义为(D,R),其中D是数据元素的有限集合,2.数据结构包括数据的、数据的和数据的这三个方面

数据结构试题库集及答案

0131

1141

212

3681

4274

5553

6191

7201

8843

973

10231

11111

12

9、依次读入给定的整数序列{7,16,4,8,20,9,6,18,5},构造一棵二叉排序树,并计算在等概率情况下该二叉排序树的平均查找长度ASL。(要求给出构造过程)

10、设有一组关键字(19,1,23,14,55,20,84,27,68,11,10,77),采用哈希函数H(key)=key%13,采用二次探测再散列的方法解决冲突,试在0-18的散列地址空间中对该关键字序列构造哈希表。 答案:

0273

111

2142

3551

4682

5843

6191

7201

8

9103

10231

11111

12771

13

14

15

16

17

18

第十章 内部排序

一、选择题

1、若需要在O(nlog2n)的时间内完成对数组的排序,且要求排序是稳定的,则可选择的排序方法是()。

A. 快速排序 B. 堆排序 C. 归并排序 D. 直接插入排序 2、下列排序方法中()方法是不稳定的。

A. 冒泡排序 B.选择排序 C. 堆排序 D. 直接插入排序

3、一个序列中有10000个元素,若只想得到其中前10个最小元素,则最好采用()方法。

A. 快速排序 B.堆排序 C.插入排序 D.归并排序 4、一组待排序序列为(46,79,56,38,40,84),则利用堆排序的方法建立的初始堆为()。

A. 79,46,56,38,40,80 B. 84,79,56,38,40,46 C. 84,79,56,46,40,38 D. 84,56,79,40,46,38 5、快速排序方法在()情况下最不利于发挥其长处。

A. 要排序的数据量太大 B.要排序的数据中有多个相同值 C. 要排序的数据已基本有序 D. 要排序的数据个数为奇数

6、排序时扫描待排序记录序列,顺次比较相邻的两个元素的大小,逆序时就交换位置,这是()排序的基本思想。

A. 堆排序 B. 直接插入排序 C. 快速排序 D. 冒泡排序 7、在任何情况下,时间复杂度均为O(nlogn)的不稳定的排序方法是()。 A.直接插入 B. 快速排序 C. 堆排序 D. 归并排序 8、如果将所有中国人按照生日来排序,则使用()算法最快。

A. 归并排序 B.希尔排序 C.快速排序 D.基数排序 9、在对n个元素的序列进行排序时,堆排序所需要的附加存储空间是()。

A. O(log2n) B. O(1) C. O(n) D. O(nlog2n)

10、排序方法中,从未排序序列中依次取出元素与已排序序列中的元素进行比较,将其放入已排序序列的正确位置上的方法,称为()。

A. 希尔排序 B. 冒泡排序 C. 插入排序 D.选择排序 11、一组记录的的序列未(46,79,56,38,40,84),则利用堆排序的方法建立的初始堆为()。

A. 79,46,56,38,40,80 B. 84,79,56,38,40,46 C. 84,79,56,46,40,38 D. 84,56,79,40,46,38

12、用某种排序方法对线性表( 25,84,21,47,15,27,68,35,20)进行排序时,元素序列的变化情况如下:

? 25,84,21,47,15,27,68,35,20 ? 20,15,21,25,47,27,68,35,84 ? 15,20,21,25,35,27,47,68,84 ? 15,20,21,25,27,35,47,68,84 则所采用的排序方法是()。 A. 选择排序 B. 希尔排序 C. 归并排序 D. 快速排序 13、设有1024个无序的元素,希望用最快的速度挑选出其中前5个最大的元素,最好选用()。 A.冒泡排序 B. 选择排序 C.快速排序 D.堆排序

14、下列排序方法中,平均时间性能为O(nlogn)且空间性能最好的是()。

A. 快速排序 B.堆排序 C. 归并排序 15、希尔排序的增量序列必须是()。 A.递增的 B. 递减的 C.随机的 D.非递减的

二、填空题

1、在插入和选择排序中,若初始数据基本正序,则选用,若初始数据基本反序,则选用。

答案:递增排列 递减排列

D. 基数排序

2、在插入排序、希尔排序、选择排序、快速排序、堆排序、归并排序和基数排序中,排序是不稳定的有。

三、判断题

1、直接选择排序是一种稳定的排序方法。?

2、快速排序在所有排序方法中最快,而且所需附加空间也最少。? 3、直接插入排序是不稳定的排序方法。? 4、选择排序是一种不稳定的排序方法。

四、程序分析题

五、综合题

1、写出用直接插入排序将关键字序列{54,23,89,48,64,50,25,90,34}排序过程的每一趟结果。 答案:初始: 54,23,89,48,64,50,25,90,34

1:(23,54),89,48,64,50,25,90,34 2:(23,54,89),48,64,50,25,90,34 3:(23,48,54,89),64,50,25,90,34 4:(23,48,54,64,89),50,25,90,34 5:(23,48,50,54,64,89),25,90,34 6:(23,25,48,50,54,64,89),90,34 7:(23,25,48,50,54,64,89,90),34 8:(23,25,48,50,54,64,89,90,34)

2、设待排序序列为{10,18,4,3,6,12,1,9,15,8}请写出希尔排序每一趟的结果。增量序列为5,3,2,1。 答案:初始: 10,18,4,3,6,12,1,9,15,8

d=5: 10,1,4,3,6,12,18,9,15,8 d=3: 3,1,4,8,6,12,10,9,15,18 d=2: 3,1,4,8,6,9,10,12,15,18 d=1: 1,3,4,6,8,9,10,12,15,18

3、已知关键字序列{418,347,289,110,505,333,984,693,177},按递增排序,求初始堆(画出初始堆的状态)。

答案:418,347,289,110,505,333,984,693,177

4、有一关键字序列(265,301,751,129,937,863,742,694,076,438),写出希尔排序的每趟排序结果。(取增量为5,3,1) 答案:

初始: 265,301,751,129,937,863,742,694,076,438 d=5: 265,301,694,076,438,863,742,751,129,937 d=3: 076,301,129,265,438,694,742,751,863,937 d=1: 076,129,265,301,438,694,742,751,863,937

5、对于直接插入排序,希尔排序,冒泡排序,快速排序,直接选择排序,堆排序和归并排序等排序方法,分别写出: (1)平均时间复杂度低于O(n2)的排序方法; (2)所需辅助空间最多的排序方法;

答案:(1) 希尔、快速、堆、归并 (2) 归并

6、对关键子序列(72,87,61,23,94,16,05,58)进行堆排序,使之按关键字递减次序排列(最小堆),请写出排序过程中得到的初始堆和前三趟的序列状态。 答案:

05

05

23

94

72

16

61

87

第2趟

87235905

94

61

16

05

87

59

94

23

61

16

05

87

59

94

72

61

16

第3趟

59728705

94

2361

16

第一章概论自测题答案

一、填空题

1. 数据结构被形式地定义为(D, R),其中D是数据元素的有限集合,R是D上的关系有限集合。 2. 数据结构包括数据的、数据的和数据的这三个方面的内容。 3. 数据结构按逻辑结构可分为两大类,它们分别是线性结构和非线性结构。

4. 线性结构中元素之间存在关系,树形结构中元素之间存在关系,图形结构中元素之间存在关系。 5.在线性结构中,第一个结点前驱结点,其余每个结点有且只有 1个前驱结点;最后一个结点后续结点,其余每个结点有且只有1个后续结点。

6. 在树形结构中,树根结点没有前驱结点,其余每个结点有且只有个前驱结点;叶子结点没有后续结点,其余每个结点的后续结点数可以任意多个。

7. 在图形结构中,每个结点的前驱结点数和后续结点数可以任意多个。

8.数据的存储结构可用四种基本的存储方法表示,它们分别是顺序、链式、索引和散列。 9. 数据的运算最常用的有5种,它们分别是。 10. 一个算法的效率可分为时间效率和空间效率。

11.任何一个C程序都由和若干个被调用的其它函数组成。

二、单项选择题

(B)1. 非线性结构是数据元素之间存在一种:

A)一对多关系 B)多对多关系 C)多对一关系 D)一对一关系

( C )2. 数据结构中,与所使用的计算机无关的是数据的结构;

A)存储 B)物理 C)逻辑 D)物理和存储

(C)3. 算法分析的目的是:

A)找出数据结构的合理性 B)研究算法中的输入和输出的关系 C) 分析算法的效率以求改进 D)分析算法的易懂性和文档性

(A)4. 算法分析的两个主要方面是:

A)空间复杂性和时间复杂性 B)正确性和简明性

C)可读性和文档性 D)数据复杂性和程序复杂性

(C )5. 计算机算法指的是:

A)计算方法 B) 排序方法 C)解决问题的有限运算序列 D)调度方法

(B)6. 计算机算法必须具备输入、输出和等5个特性。

A)可行性、可移植性和可扩充性 B)可行性、确定性和有穷性 C)确定性、有穷性和稳定性 D)易读性、稳定性和安全性

三、简答题

1.数据结构和数据类型两个概念之间有区别吗?

答:简单地说,数据结构定义了一组按某些关系结合在一起的数组元素。数据类型不仅定义了一组带结构的数据元素,而且还在其上定义了一组操作。

2. 简述线性结构与非线性结构的不同点。

答:线性结构反映结点间的逻辑关系是一对一的,非线性结构反映结点间的逻辑关系是多对多的。

四、分析下面各程序段的时间复杂度

1. for (i=0; i<n; i++)

for (j=0; j<m; j++)

A[i][j]=0;

答:O(m*n)

3. x=0;

for(i=1; i<n; i++)

for (j=1; j<=n-i; j++) x++;

解:因为x++共执行了n-1+n-2+??+1=

2

n(n-1)/2 ,所以执行时间为)

2. s=0;

for i=0; i<n; i++)

for(j=0; j<n; j++) s+=B[i][j]; sum=s;

答:O(n2)

4. i=1;

while(i<=n) i=i*3; 答:O(log3n)

第2章自测卷答案

一、填空

1.在顺序表中插入或删除一个元素,需要平均移动表中一半元素,具体移动的元素个数与表长和该元素在表中的位置有关。

2. 线性表中结点的集合是有限的,结点间的关系是一对一的。

3. 向一个长度为n的向量的第i个元素(1≤i≤n+1)之前插入一个元素时,需向后移动个元素。 4. 向一个长度为n的向量中删除第i个元素(1≤i≤n)时,需向前移动个元素。

5. 在顺序表中访问任意一结点的时间复杂度均为,因此,顺序表也称为的数据结构。

6.顺序表中逻辑上相邻的元素的物理位置相邻。单链表中逻辑上相邻的元素的物理位置相邻。 7.在单链表中,除了首元结点外,任一结点的存储位置由指示。

8.在n个结点的单链表中要删除已知结点*p,需找到它的,其时间复杂度为。

二、判断正误

(×)1. 链表的每个结点中都恰好包含一个指针。

答:错误。链表中的结点可含多个指针域,分别存放多个指针。例如,双向链表中的结点可以含有两个指针域,分别存放指向

其直接前趋和直接后继结点的指针。

(×)2.链表的物理存储结构具有同链表一样的顺序。错,链表的存储结构特点是无序,而链表的示意图有序。

(×)3.链表的删除算法很简单,因为当删除链中某个结点后,计算机会自动地将后续的各个单元向前移动。错,链表的

结点不会移动,只是指针内容改变。

(×)4.线性表的每个结点只能是一个简单类型,而链表的每个结点可以是一个复杂类型。

错,混淆了逻辑结构与物理结构,链表也是线性表!且即使是顺序表,也能存放记录型数据。

(×)5. 顺序表结构适宜于进行顺序存取,而链表适宜于进行随机存取。

错,正好说反了。顺序表才适合随机存取,链表恰恰适于“顺藤摸瓜”

(×)6. 顺序存储方式的优点是存储密度大,且插入、删除运算效率高。

错,前一半正确,但后一半说法错误,那是链式存储的优点。顺序存储方式插入、删除运算效率较低,在表长为n的顺序表中,插入和删除一个数据元素,平均需移动表长一半个数的数据元素。

(×)7. 线性表在物理存储空间中也一定是连续的。

错,线性表有两种存储方式,顺序存储和链式存储。后者不要求连续存放。

(×)8. 线性表在顺序存储时,逻辑上相邻的元素未必在存储的物理位置次序上相邻。

错误。线性表有两种存储方式,在顺序存储时,逻辑上相邻的元素在存储的物理位置次序上也相邻。

(×)9. 顺序存储方式只能用于存储线性结构。

错误。顺序存储方式不仅能用于存储线性结构,还可以用来存放非线性结构,例如完全二叉树是属于非线性结构,但其最佳存储方式是顺序存储方式。(后一节介绍)

(×)10. 线性表的逻辑顺序与存储顺序总是一致的。

五星文库wxphp.com包含总结汇报、办公文档、IT计算机、考试资料、文档下载、党团工作、资格考试、教程攻略、计划方案、教学研究以及数据结构试题库集及答案等内容。

本文共54页1<<567891011>>54