数据结构复习题及答案(12级)

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

A. 快速排序 B. 堆排序

C. 归并排序 D. 直接插入排序

(77) 将两个各有n个元素的有序表归并成一个有序表,其最少的比较次数是___ B _______。

A. n B. 2n-1 C. 2n D. n-1 (78) 下列排序算法中,____ C ____ 算法可能会出现下面情况:初始数据有序时,花费的间反而最多。

A. 堆排序 B.冒泡排序 C.快速排序 D. SHELL排序

二、填空题。(每空1分,共10分)

(1) 数据结构是一门研究非数值计算的程序设计问题中计算

机的 数据 以及它们之间的 关系 和运算等的学科。

(2) 数据结构包括数据的 逻辑结构 结构和 物理结构 结构。

(3) 数据结构从逻辑上划分为三种基本类型:____线性数据结构_______、____树型结构______和_____图结构______。 (4) 数据的物理结构被分为___顺序存储______、___链式存储_____、____索引存储______和______散列表(Hash)存储_____四种。

(5) 一种抽象数据类型包括_____变量的取值范围_____和 ____操作的类别_____两个部分。

(6) 数据的逻辑结构是指 数据元素间的逻辑关系 ,数据的存储结构是指 数据元素存储方式或者数据元素的物理关系 。

(7) 数据结构是指数据及其相互之间的____关系

__________。当结点之间存在M对N(M:N)的联系时,称这种结构为________网状结构________。当结点之间存在1对N(1:N)的联系时,称这种结构为_____树结构__________。

空间复杂度和时间复杂度 分析。 (9) 算法的效率可分为______空间_________效率和______时间_________效率。

(10) for(i=1,t=1,s=0;i<=n;i++) {t=t*i;s=s+t;}的时间复杂度为___Ο(n)______。

(11) 线性表是n个元素的_________有限序列____________________。

(12) 线性表的存储结构有_________顺序存储和链式存储____________________。

(13) 设线性表中有n个数据元素,则在顺序存储结构上实现顺序查找的平均时间复杂度为_____O(n)______,在链式存储结构上实现顺序查找的平均时间复杂度为____ O(n)_______。

(14) 设顺序线性表中有n个数据元素,则第i个位置上插入一个数据元素需要移动表中___ n-i+1____个数据元素;删除第i个位置上的数据元素需要移动表中___ n-i ____个元素。 (15) 若频繁地对线性表进行插入与删除操作,该线性表应采用_____链式_________存储结构。

(16) 链式存储结构中的结点包含______数据__________域和_____指针__________域。

(17) 对于一个长度为n的单链存储的线性表,在表头插入元素的时间复杂度为___Ο(1)______,在表尾插入元素的时间复杂度为_____Ο(n)_______。

(18) 栈的插入和删除只能在栈的栈顶进行,后进栈的元素必定先出栈,所以又把栈称为____ FILO ________表;队列的

(8) 对算法从时间和空间两方面进行度量,分别称为

插入和删除运算分别在队列的两端进行,先进队列的元素必定先出队列,所以又把队列称为 _____ FIFO ______表。 (19) s=” I am a man” 长度为____10_______ 。 (20) s1=”hello “,s2=”boy”,s1,s2连接后为:________ hello boy ______________ 。 (21) s=”this is the main string”,sub=”string”,strindex(s,sub)是:_______13_______。

(22) int a[10][10],已知a=1000,sizeof(int)=2,求a[3][3]地址:_______1066___________ 。

(23) 设有两个串p和q,求q在p中首次出现的位置的运算称为________模式匹配________。

(24) 在树型结构中,树根结点没有______前趋______结点,其余每个结点有且仅有______一______个前驱结点;树叶结点没有______后继______结点,其余每个结点的______后继______结点数不受限制。

(25) 在一棵二叉树中,度为0的结点的个数为n0 ,度为2的结点的个数为n2 ,则:n0 =______n2 +1______。

(26) 由分别带权为3,9,6,2,5的共五个叶子结点构成一棵哈夫曼树,则带权路径长度为______ 55______。 (27) 在图G的邻接表表示中,每个顶点邻接表中所含的结点数,对于无向图来说等于该 顶点的 ______度数______,对于有向图来说等于该顶点的______出度数______。

(28) 假定一个图具有n个顶点和e条边,则采用邻接矩阵表示的空间复杂性为______O(n2 ) ______, 采用邻接表表示的空间复杂性为______ O(n+e) ______。

(29) 对于长度为n的线性表,若进行顺序查找,则时间复杂度为______ O(n)____;若采用折半法查找,则时间复杂度为______ O(log2n)____。

(30) 假设在有序线性表A[1..20]上进行折半查找,则比较一次查找成功的结点数为____1_______,则比较二次查找成功的结点数为____2_______,则比较三次查找成功的结点数为____4_______,则比较四次查找成功的结点数为_____8______,则比较五次查找成功的结点数为

____5_______,平均查找长度为_____ log2(n+1)-1______。 (31) 在一棵二叉排序树中,每个分支结点的左子树上所有结点的值一定_____小于______该结点的值,右子树上所有结点的值一定____大于_______该结点的值。

(32) 对一棵二叉排序树进行中序遍历时,得到的结点序列是一个_______增序序列_______________。

(33) 对于线性表(70,34,55,23,65,41,20)进行散列存储时,若选用H(K)=K %7作为散列函数,则散列地址为0的元素是_____70_________,散列地址为6的是____34,20,55_________。

(34) 在线性表的散列存储中,装填因子?又称为装填系数,若用m表示散列表的长度,n表示待散列存储的元素的个数,则?等于____ n/m _______。

(35) 散列表中解决冲突的两种方法是____开放地址法_________和____链地址法_________。

(36) 在散列存储中,装填因子a的值越大,则_______产生冲突的可能性就越大____________;a的值越小,则_____产生冲突的可能性就越小___________。

(37) 散列法存储的基本思想是由________关键码直接______________决定数据的存储地址。

(38) 构造哈希函数的方法有(写二个)______________直接定址法,数字分析法,平方取中法,折叠法,除留余数法,随机数法_________________________________________。 (39) 在分块查找中首先查找 _____索引________,然后再查找相应的______块_________。

(40) 散列表的查找效率主要取决于散列表造表时选择的_____哈希函数________ 和______装填因子_________。 (41) 对两棵具有相同关键字集合而形状不同的二叉排序树,____中序_______ 遍历它们得到的序列的顺序是一样的。 (42) 当待排序的记录数较大,排序码较随机且对稳定性不作要求时,宜采用______快速_________排序;当待排序的记录数较大,存储空间允许且要求排序是稳定时,宜采用______归并_________排序。

(43) 在堆排序的过程中,对任一分支结点进行筛运算的时间复杂度为___ O(log2n)_____,整个堆排序过程的时间复杂度为____ O(nlog2n)____。

(44) 当向一个大根堆插入一个具有最大值的元素时,需要逐层____向上_____调整,直到被调整到_____根结点_______位置为止。

(45) 对一组初始关键字序列(40,50,95,20,15,70,60,45,10)进行冒泡排序,则第一趟需要进行相邻记录的

比较的次数为____8______,在整个排序过程中最多需要进行_____8_____趟排序才可以完成。

(46) 在在插入排序、选择排序、快速排序、堆排序、归并排序和基数排序中,平均比较次数最少的排序是___快速_______,需要内存容量最多的是____归并______。

(47) 堆排序是不稳定,空间复杂度为 ____ O(1)_____。在最坏情况下,其时间复杂度也为___ O(nlog2n)______。 (48) 若待排序的文件中存在多个关键字相同的记录,经过某种排序方法排序后,具有相同关键字的记录间的相对位置保持不变,则这种排序方法是____稳定_______的排序方法。 (49) 在对一组记录(50,40,95,20,15,70,60,45,80)进行直接插入排序时,当把第7个记录60插入到有序表时,为寻找插入位置需比较____3_____次。

(50) 二路归并排序的时间复杂度是___ O(nlog2n)______。 (51) 对于n个记录的集合进行归并排序,所需的附加空间消耗是___ O(n)______。

(52) 设表中元素的初始状态是按键值递增的,分别用堆排序、快速排序、冒泡排序和归并排序方法对其仍按递增顺序进行排序,则______冒泡排序_________最省时间,____快速排序________最费时间。

三、判断题。(每小题1分,共10分) ( × )1.数据元素是数据的最小单位。 ( × )2.数据项是数据的基本单位。

( √ )3.顺序存储的线性表可以随机存取。

( √ )4.线性表中的元素可以是各种各样的,但同一线性表中的数据元素具有相同的特性, 因此,是属于同一数据对象。 ( × )5.在单链表中,任何两个元素的存储位置之间都有固定的联系,因为可以从头结点查找任何一个元素。

( × )6.在单链表中,要取得某个元素,只要知道该元素的指针即可,因此,单链表是随机存取的存储结构。 ( × )7.链表的每个结点中,都恰好包含一个指针。 ( × )8.数组是同类型值的集合。

( √ )9.使用三元组表示稀疏矩阵的元素,有时并不能节省存储时间。

联系客服:779662525#qq.com(#替换为@) 苏ICP备20003344号-4