(103) 衡量查找算法效率的主要标准是( )。
A) 元素的个数
B) 所需的存储量 C) 平均查找长度 D) 算法难易程度
(104) 适合对动态查找表进行高效率查找的组织结构是( )。
A) 有序表
B) 分块有序表 C) 二叉排序树 D) 快速排序
(3) 能进行二分查找的线性表,必须以( )。
A) 顺序方式存储,且元素按关键字有序 B) 链式方式存储,且元素按关键字有序 C) 顺序方式存储,且元素按关键字分块有序 D) 链式方式存储,且元素按关键字分块有序
(105) 为使平均查找长度达到最小,当由关键字集合{05,11,21,25,37,40,41,62,84}构建二叉排序
树时,第一个插入的关键字应为( ) A) 5
B)37
C) 41
D) 62
(106) 对关键字序列(56,23,78,92,88,67,19,34)进行增量为3的一趟希尔排序的结果为 ( )。
A) (19,23,56,34,78,67,88,92) C) (19,23,34,56,67,78,88,92)
B) 23,56,78,66,88,92,19,34) D) (19,23,67,56,34,78,92,88)
(107) 用某种排序方法对关键字序列{35,84,21,47,15,27,68,25,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) 快速排序
(108) 一组记录的排序码为(46,79,56,38,40,84),则利用快速排序的方法,以第一个记录为基准
得到的第一次划分结果为( )。
A) 38,40,46,56,79,84
B) 40,38,46,79,56,84
C) 40,38,46,56,79,84 D)
40,38,46,84,56,79
(109) 快速排序在最坏情况下的时间复杂度是( )
A) O(n2log2n)
B) O(n2)
C) O(nlog2n)
D) O(log2n)
(110) 下列排序算法中不稳定的是( )。
A) 直接选择排序 B) 折半插入排序 C) 冒泡排序
D) 快速排序
(111) 对待排序的元素序列进行划分,将其分为左、右两个子序列,再对两个子序列进行同样的排
序操作,直到子序列为空或只剩下一个元素为止。这样的排序方法是( )。 A) 直接选择排序 B) 直接插入排序 C) 快速排序 (112) 将5个不同的数据进行排序,至多需要比较( )次。
D) 冒泡排序
A) 8 B) 9 C) 10 D) 25
(113) 排序算法中,第一趟排序后,任一元素都不能确定其最终位置的算法是( )。
A)选择排序
B)快速排序
C)冒泡排序
D)插入排序
(114) 排序算法中,不稳定的排序是( )。
A)直接插入排序
B)冒泡排序
C)堆排序
D)选择排序
(115) 排序方法中,从未排序序列中依次取出元素与已排序序列(初始时为空)中的元素进行比较,
将其放入已排序序列的正确位置上的方法,称为( ).
A) 希尔排序 B) 冒泡排序 C) 插入排序 D) 选择排序
(116) 从未排序序列中挑选元素,并将其依次插入已排序序列(初始时为空)的一端的方法,称为
( )。
A) 希尔排序 B) 归并排序 C) 插入排序 D) 选择排序 (117) 对n个不同的排序码进行冒泡排序,在下列哪种情况下比较的次数最多。( )
A) 从小到大排列好的 C) 元素无序
B) 从大到小排列好的 D) 元素基本有序
(118) 对n个不同的排序码进行冒泡排序,在元素无序的情况下比较的次数为( )。
A) n+1 B) n
C) n-1 D) n(n-1)/2
(119) 快速排序在下列哪种情况下最易发挥其长处。( )
A) 被排序的数据中含有多个相同排序码 B) 被排序的数据已基本有序 C) 被排序的数据完全无序
D) 被排序的数据中的最大值和最小值相差悬殊
(120) 对有n个记录的表作快速排序,在最坏情况下,算法的时间复杂度是( )。
A) O(n)
B) O(n2)
C) O(nlog2n)
D) O(n3)
(121) 若一组记录的排序码为(46, 79, 56, 38, 40, 84),则利用快速排序的方法,以第一个记
录为基准得到的一次划分结果为( )。
A) 38, 40, 46, 56, 79, 84 B) 40, 38, 46 , 79, 56, 84 C) 40, 38,46, 56, 79, 84 (122) 下列关键字序列中,( )是堆。
A) 16, 72, 31, 23, 94, 53 C) 16, 53, 23, 94,31, 72 (123) 堆是一种( )排序。
A) 插入 B) 选择 (124) 堆的形状是一棵( )。
A) 二叉排序树 B) 满二叉树
C) 完全二叉树 D) 平衡二叉树 C) 交换
D) 归并
B) 94, 23, 31, 72, 16, 53 D) 40, 38, 46, 84, 56, 79
D) 16, 23, 53, 31, 94, 72
(125) 若一组记录的排序码为(46, 79, 56, 38, 40, 84),则利用堆排序的方法建立的初始堆为
( )。
A) 79, 46, 56, 38, 40, 84 C) 84, 79, 56, 46, 40, 38
B) 84, 79, 56, 38, 40, 46 D) 84, 56, 79, 40, 46, 38
(126) 下述几种排序方法中,要求内存最大的是( )。
A) 插入排序 B) 快速排序 C) 归并排序 D) 选择排序
(127) 有一组数据(15,9,7,8,20,-1,7,4),用堆排序的筛选方法建立的初始堆为( )。
A) -1,4,8,9,20,7,15,7 C) -1,4,7,8,20,15,7,9
B) -1,7,15,7,4,8,20,9 D) A,B,C 均不对。
(128) 51.下列四个序列中,哪一个是堆( )。
A) 75,65,30,15,25,45,20,10 C) 75,45,65,30,15,25,20,10 (129) 以下序列不是堆的是( )。
A) (100,85,98,77,80,60,82,40,20,10,66) (100,98,85,82,80,77,66,60,40,20,10)
C) (10,20,40,60,66,77,80,82,85,98,100) (100,85,40,77,80,60,66,98,82,10,20)
(130) 快速排序方法在( )情况下最不利于发挥其长处。
A) 要排序的数据量太大
B) 要排序的数据中含有多个相同值 D) 要排序的数据已基本有序
D) B)
B) 75,65,45,10,30,25,20,15 D) 75,45,65,10,25,30,20,15
C) 要排序的数据个数为奇数
(131) 对关键码序列28,16,32,12,60,2,5,72 快速排序,从小到大一次划分结果为( )。
A) (2,5,12,16)26(60,32,72) C) (2,16,12,5)28(60,32,72)
B) (5,16,2,12)28(60,32,72) D) (5,16,2,12)28(32,60,72)
(132) 对下列关键字序列用快速排序法进行排序时,速度最快的情形是( )。
A) {21,25,5,17,9,23,30} C) {21,9,17,30,25,23,5} 二、填空题
(133)
数据结构是一门研究非数值计算的程序设计问题中计算机的 操作对象 以及它
B){25,23,30,17,21,5,9} D) {5,9,17,21,23,25,30}
们之间的 关系 和运算等的学科。
(134)
数据结构被形式地定义为(D, R),其中D是 数据元素 的有限集合,R是D
上的 关系 有限集合。
(135)
数据结构包括数据的 逻辑结构 、数据的 存储结构 和数据的 运算 这三
个方面的内容。
(136) 构 。
(137)
数据结构按逻辑结构可分为两大类,它们分别是 线性结构 和 非线性结
线性结构中元素之间存在一对一关系,树形结构中元素之间存在一对多关系,图形
结构中元素之间存在多对多关系。
(138)
在线性结构中,第一个结点 没有 前驱结点,其余每个结点有且只有 1个前驱结
点;最后一个结点 没有 后续结点,其余每个结点有且只有1个后续结点。
(139)
在树形结构中,树根结点没有 前驱 结点,其余每个结点有且只有 1 个前驱
结点;叶子结点没有 后续 结点,其余每个结点的后续结点数可以任意多个 。
(140) (141)
在图形结构中,每个结点的前驱结点数和后续结点数可以 任意多个 。 数据的存储结构可用四种基本的存储方法表示,它们分别是顺序 、 链式 、 索引
和 散列 。
(142) (143) (144) 四种。
(145)
顺序映象的特点是借助元素在存储器中的 相对位置来表示数据元素之间数据的运算最常用的有5种,它们分别是插入 、 删除、修改、 查找 、排序。 一个算法的效率可分为 时间 效率和 空间 效率。
对于给定的n个元素,可以构造出的逻辑结构有 集合,线性表,树,图
的逻辑关系。非顺序映象的特点是借助是指示元素存储地址的 指针表示数据元素之间
的逻辑关系。任何一个算法的设计取决于选定 逻辑结构,而算法的实现依赖于采用的 存储结构。
(146) 作的总称。
(147) (148)
数据对象是___________性质相同的数据元素的集合,是数据的一个子集。 如果操作不改变原逻辑结构的“值”,而只是从中提取某些信息作为运算结果,则数据类型是一组___________性质相同的值集合以及定义在这个值集合上的一组操
称该类运算为 型运算。引用
(149)
算法的 健壮特性是指做为一个好的算法,当输入的数据非法时,也能
适当地做出正确反应或进行相应的处理,而不会产生一些莫名其妙的输出结果。
(150)
算法分析不是针对实际执行时间的精确的算出算法执行具体时间的分析,而是针对
算法中语句的 执行次数做出估计,从中得到算法执行时间的信息。
(151)
T(n)=O(f(n)),它表示随问题规模n的增大算法的执行时间的增长率和f(n)的增长
率 相同,称作算法的渐进时间复杂度,简称时间复杂度。
(152)
若算法执行时所需要的辅助空间相对于输入数据量而言是个常数,则称这个算法为
原地工作,辅助空间为O(1)。
(153)
在带有头结点的单链表中L中,第一个元素结点的指针是 。L->next
(154) 在一个带头节点的单循环链表中,p指向尾结点的直接前驱,则指向头结点的指针
head可用p表示为head= 。p->next->next
(155)
设单链表的结点结构为(data,next),next为指针域,已知指针px指向单链表中data
为x的结点,指针py指向data为y的新结点 , 若将结点y插入结点x之后,则需要执行以下语句: py->next=px->next; px->next=py。
(156) 对于栈操作数据的原则是 。后进先出
(157) 设以数组A[m]存放循环队列的元素,其头尾指针分别为front和rear,则当前队列中的元素个数为 。(rear-front+m)%m
(158)
若已知一个栈的入栈序列是1,2,3,4??n,其输出序列为p1,p2,p3,??pn,若p1=
=n,则pi为 。n-i+1
(159)
队列是被限定为只能在表的一端进行插入运算,在表的另一端进行删除
运算的线性表。
(160)
通常程序在调用另一个程序时,都需要使用一个 栈来保存被调用程序内分配
的局部变量。形式参数的存储空间以及返回地址。
(161) (162)
栈下溢是指在___栈空_____时进行出栈操作。
用P表示入栈操作,D表示出栈操作,若元素入栈的顺序为1234,为了得到1342
出栈顺序,相应的P和D的操作串为_______ 。PDPPDPDD
(163) (164)
在具有n个单元的循环队列中,队满共有 n-1个元素。
队列是被限定为只能在表的一端进行插入运算,在表的另一端进行删除
运算的线性表。
(165) (166) (167)
循环队列的引入,目的是为了克服_______假溢出。
所谓稀疏矩阵指的是_______非零元很少(t< 在稀疏矩阵表示所对应的三元组线性表中,每个三元组元素按 行为主 序, 列号为辅序的次序排列。 (168) 二位数组Am×n按行优先顺序存储在内存中,元素a00地址为loc(a00),每个元素在内存 中占d个字节,元素aij的地址计算公式为loc(aij)= loc(a00)+(i*n+j)*d 。 (169) 去除广义表LS=(a1,a2,a3,??,an)中第1个元素,由其余元素构成的广义表称为 LS的____表尾_____。 (170) (171) (172) (173) 树内个结点的度 最大值称为树的度。 一个二叉树第5层节点最多有 16个。 已知完全二叉树T的第5层只有7个结点,则该树共有____11____个叶子结点。 在一棵二叉树中,度为零的结点的个数为N0,度为2的结点的个数为N2,则有N0 =______N2+1。