数据结构练习8
- 格式:doc
- 大小:73.00 KB
- 文档页数:8
第八章排序:习题习题一、选择题1.在所有排序方法中,关键字比较的次数与记录的初始排列次序无关的是( )。
A.希尔排序B.冒泡排序C.插入排序D.选择排序2.设有1000个无序的记录,希望用最快的速度挑选出其中前10个最大的记录,最好选用( )排序法。
A.冒泡排序B.快速排序C.堆排序D.基数排序3.在待排序的记录序列基本有序的前提下,效率最高的排序方法是( )。
A.插入排序B.选择排序C.快速排序D.归并排序’4.不稳定的排序方法是指在排序中,关键字值相等的不同记录的前后相对位置( )。
A.保持不变B.保持相反C.不定D.无关5.内部排序是指在排序的整个过程中,全部数据都在计算机的( )中完成的排序。
A. 内存储器B.外存储器C.内存储器和外存储器D.寄存器6.用冒泡排序的方法对n个数据进行排序,第一趟共比较( )对记录。
A.1B.2C.n-lD.n7.直接插入排序的方法是从第( )个记录开始,插入前边适当位置的排序方法。
A.1B.2C.3D.n8.用堆排序的方法对n个数据进行排序,首先将n个记录分成( )组。
A.1B.2C.n-lD.n9.归并排序的方法对n个数据进行排序,首先将n个记录分成( )组,两两归并。
A.1B.2C.n-lD.n10.直接插入排序的方法要求被排序的数据( )存储。
A.必须是顺序B.必须是链表C.顺序或链表D.二叉树11.冒泡排序的方法要求被排序的数据( )存储。
A.必须是顺序B.必须是链表C.顺序或链表D.二叉树12.快速排序的方法要求被排序的数据( )存储。
A.必须是顺序B.必须是链表C.顺序或链表D.二叉树13.排序方法中,从未排序序列中依次取出记录与已排序序列(初始时为空)中的记录进行比较,将其放入已排序序列的正确位置上的方法,称为( )。
A.希尔排序B.冒泡排序C.插入排序D.选择排序14.每次把待排序的记录划分为左、右两个子序列,其中左序列中记录的关键字均小于等于基准记录的关键字,右序列中记录的关键字均大于基准记录的关键字,则此排序方法叫做( )。
计算机学科专业基础综合数据结构-8(总分100,考试时间90分钟)单项选择题1. 若对序列(tang,deng,an,wang,shi,bai,fang,liu)采用简单选择排序法按字典顺序进行排序,下面给出的四个序列中,第三趟的结果是______。
A. an,bai,deng,wang,tang,fang,shi,liuB. an,bai,deng,wang,shi,tang,fang,liuC. an,bai,deng,wang,fang,shi,tang,liuD. an,bai,deng,wang,shi,liu,tang,fang2. 每次从排序记录中挑出最小(或最大)的关键字,加入到待排序序列的末尾,则该排序算法是______。
A. 选择排序B. 快速排序C. 冒泡排序D. 插入排序3. 一组记录的序列F={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}4. 下列排序算法中,______算法可能会出现下面情况:初始数据有序时,花费的时间反而最多。
A. 堆排序B. 快速排序C. 冒泡排序D. 希尔排序5. 以下排序方法中,不需要进行关键字的比较的是______。
A. 快速排序B. 归并排序C. 基数排序D. 堆排序6. 直接插入排序在最好情况下的时间复杂度为______。
A. O(n)B. O(nlogn)C. O(logn)D. O(n2)7. 设有1000个无序元素,希望用最快的速度挑选出前10个最大的元素,最好选用______法。
A. 冒泡排序B. 快速排序C. 堆排序D. 基数排序8. 下面四种排序算法中,不是稳定排序的是______。
A. 冒泡排序B. 快速排序C. 堆排序D. 基数排序9. 就平均性能而言,目前最好的排序算法是______。
注意事项:在磁盘上创建一个目录,专门用于存储数据结构实验的程序。
因为机房机器有还原卡,请同学们将文件夹建立在最后一个盘中,以学号为文件夹名。
实验八查找和排序一、实验目的掌握运用数据结构两种基本运算查找和排序,并能通过其能解决应用问题。
二、实验要求1.掌握本实验的算法。
2.上机将本算法实现。
三、实验内容为宿舍管理人员编写一个宿舍管理查询软件, 程序采用交互工作方式,其流程如下:建立数据文件,数据结构采用线性表,存储方式任选(建议用顺序存储结构),数据元素是结构类型(学号,姓名,性别,房号),元素的值可从键盘上输入,可以在程序中直接初始化。
数据文件按关键字(学号、姓名、房号)进行排序(排序方法任选一种),打印排序结果。
(注意字符串的比较应该用strcmp(str1,str2)函数)查询菜单: (查找方法任选一种)1. 按学号查询2. 按姓名查询3. 按房号查询打印任一查询结果(可以连续操作)。
参考:typedef struct {char sno[10];char sname[2];int sex; //以0表示女,1表示男int roomno;}ElemType;struct SqList{ElemType *elem;int length;};void init(SqList &L){L.elem=(ElemType *)malloc(MAXSIZE*sizeof(ElemType));L.length=0;}void printlist(SqList L){ int i;cout<<" sno name sex roomno\n";for(i=0;i<L.length;i++)cout<<setw(7)<<L.elem[i].sno<<setw(10)<<L.elem[i].sname<<setw(3)<<L.elem[i].sex<<setw(6) <<L.elem[i].roomno<<endl;}。
《数据结构》试卷一一、填空题:(共20分)1、当线性表的元素总数基本稳定,且很少进行插入和删除操作,但要求以最快的速度存取线性表中的元素时,应采用存储结构。
2、队列是限制插入只能在表的一端,而删除在表的另一端进行的线性表,其特点是。
3、在一棵二叉树中,度为0的结点个数为n0,度为2的个数为n2,则n0= 。
4、二叉树的前序遍历序列等同于该二叉树所对应森林的遍历序列5、对一棵二叉排序树,若以遍历该树,将得到一个以关键字递增顺序排列的有序序列。
6、三个结点a,b,c组成二叉树,共有种不同的结构。
7、在AVL树中,由于在A结点的右孩子的右子树上插入结点,使A结点的平衡因子由-1变为-2,使其失去平衡,应采用型平衡旋转。
8、图的遍历有两种,它们是。
9、堆排序的时间复杂度为。
10、在含有N个结点的二叉链表中有空链域,通常用这些空链域存储线索,从而得另一种链式存储结构----线索链表。
二、单项选择题(共20分)1、若进栈序列为1,2,3,4,假定进栈和出栈可以穿插进行,则可能的出栈序列是()(A)2,4,1,3(B)3,1,4,2(C)3,4,1,2(D)1,2,3,42、有一棵非空的二叉树,(第0层为根结点),其第i层上最多有多少个结点?()(A)2i(B)21-i(C)21+i(D) i3、设电文中出现的字母为A,B,C,D,E,每个字母在电文中出现的次数分别为9,27,3,5,11,按huffman编码,则字母A编码为()(A)10(B)110(C)1110(D)11114、下面关于数据结构的叙述中,正确的叙述是()(A)顺序存储方式的优点是存储密度大,且插、删除运算效率高(B)链表中每个结点都恰好包含一个指针(C)包含n个结点的二叉排序树的最大检索长度为logn2(D)将一棵树转为二叉树后,根结点无右子树5、程序段:y:=0while n>=(y+1)*(y+1) doy:=y+1enddo的时间复杂度为()(A)O(n) (B)O(n2) (C)O(n2/1) (D)O(1)6、排序方法中,关键码比较的次数与记录的初始排列无关的是( )(A) shell排序 (B) 归并排序 (C) 直接插入排序 (D) 直接选择排序7、数组q[0..n-1]作为一个环行队列,f 为当前队头元素的前一位置,r为队尾元素的位置,假定队列中元素的个数总小于n,则队列中元素个数为( )(A) r-f (B) n+f-r (C) n+r-f (D) (n+r-f) mod n8、为了有效的利用散列查找技术,需要解决的问题是:( )Ⅰ:找一个好的散列函数Ⅱ:设计有效的解决冲突的方法Ⅲ:用整数表示关键码值(A) Ⅰ和Ⅲ (B) Ⅰ和Ⅱ (C) Ⅱ和Ⅲ (D) Ⅰ,Ⅱ和Ⅲ9、引入线索二叉树的目的是()(A) 加快查找结点的前驱或后继的速度(B) 为了能在二叉树中方便的进行插入与删除(C) :为了能方便的找到双亲(D) 使二叉树的遍历结果唯一10、用二分(折半)查找表的元素的速度比用顺序法()(A) 必然快(B) 必然慢(C): 相等(D): 不能确定三、简答题:(共40分)1、已知某二叉树按中序遍历序列为BFDAEGC,按前序遍历序列为ABDFCEG,试画出该二叉树形状,并写出它的后序遍历序列。
大学计算机《数据结构》试卷及答案一、选择题(30分)1.设一维数组中有n个数组元素,则读取第i个数组元素的平均时间复杂度为()。
(A) O(n) (B) O(nlog2n) (C) O(1) (D) O(n2)2.设一棵二叉树的深度为k,则该二叉树中最多有()个结点。
(A) 2k-1 (B) 2k(C) 2k-1(D) 2k-13.设某无向图中有n个顶点e条边,则该无向图中所有顶点的入度之和为()。
(A) n (B) e (C) 2n (D) 2e4.在二叉排序树中插入一个结点的时间复杂度为()。
(A) O(1) (B) O(n) (C) O(log2n) (D) O(n2)5.设某有向图的邻接表中有n个表头结点和m个表结点,则该图中有()条有向边。
(A) n (B) n-1 (C) m (D) m-16.设一组初始记录关键字序列为(345,253,674,924,627),则用基数排序需要进行()趟的分配和回收才能使得初始关键字序列变成有序序列。
(A) 3 (B) 4 (C) 5 (D) 87.设用链表作为栈的存储结构则退栈操作()。
(A) 必须判别栈是否为满(B) 必须判别栈是否为空(C) 判别栈元素的类型(D) 对栈不作任何判别8.下列四种排序中()的空间复杂度最大。
(A) 快速排序(B) 冒泡排序(C) 希尔排序(D) 堆9.设某二叉树中度数为0的结点数为N0,度数为1的结点数为N l,度数为2的结点数为N2,则下列等式成立的是()。
(A) N0=N1+1 (B) N0=N l+N2(C) N0=N2+1 (D) N0=2N1+l10.设有序顺序表中有n个数据元素,则利用二分查找法查找数据元素X的最多比较次数不超过()。
(A) log2n+1 (B) log2n-1 (C) log2n (D) log2(n+1)二、填空题(42分)1.设有n个无序的记录关键字,则直接插入排序的时间复杂度为________,快速排序的平均时间复杂度为_________。
第8 章排序技术课后习题讲解1. 填空题⑴排序的主要目的是为了以后对已排序的数据元素进行()。
【解答】查找【分析】对已排序的记录序列进行查找通常能提高查找效率。
⑵对n个元素进行起泡排序,在()情况下比较的次数最少,其比较次数为()。
在()情况下比较次数最多,其比较次数为()。
【解答】正序,n-1,反序,n(n-1)/2⑶对一组记录(54, 38, 96, 23, 15, 72, 60, 45, 83)进行直接插入排序,当把第7个记录60插入到有序表时,为寻找插入位置需比较()次。
【解答】3【分析】当把第7个记录60插入到有序表时,该有序表中有2个记录大于60。
⑷对一组记录(54, 38, 96, 23, 15, 72, 60, 45, 83)进行快速排序,在递归调用中使用的栈所能达到的最大深度为()。
【解答】3⑸对n个待排序记录序列进行快速排序,所需要的最好时间是(),最坏时间是()。
【解答】O(nlog2n),O(n2)⑹利用简单选择排序对n个记录进行排序,最坏情况下,记录交换的次数为()。
【解答】n-1⑺如果要将序列(50,16,23,68,94,70,73)建成堆,只需把16与()交换。
【解答】50⑻对于键值序列(12,13,11,18,60,15,7,18,25,100),用筛选法建堆,必须从键值为()的结点开始。
【解答】60【分析】60是该键值序列对应的完全二叉树中最后一个分支结点。
2. 选择题⑴下述排序方法中,比较次数与待排序记录的初始状态无关的是()。
A插入排序和快速排序B归并排序和快速排序C选择排序和归并排序D插入排序和归并排序【解答】C【分析】选择排序在最好、最坏、平均情况下的时间性能均为O(n2),归并排序在最好、最坏、平均情况下的时间性能均为O(nlog2n)。
⑵下列序列中,()是执行第一趟快速排序的结果。
A [da,ax,eb,de,bb] ff [ha,gc]B [cd,eb,ax,da] ff [ha,gc,bb]C [gc,ax,eb,cd,bb] ff [da,ha]D [ax,bb,cd,da] ff [eb,gc,ha]【解答】A【分析】此题需要按字典序比较,前半区间中的所有元素都应小于ff,后半区间中的所有元素都应大于ff。
数据结构练习第⼋章查找数据结构练习第⼋章查找1.若有18个元素的有序表存放在⼀维数组A[19]中,第⼀个元素放A[1]中,现进⾏⼆分查找,则查找A[3]的⽐较序列的下标依次为( )A. 1,2,3B. 9,5,2,3C. 9,5,3D. 9,4,2,32.设⼆叉排序树中有n个结点,则在⼆叉排序树的平均平均查找长度为()。
A. O(1)B. O(log2n)C. O(n)D. O(n2)3.在⼆叉排序树中插⼊⼀个结点的时间复杂度为()。
A. O(1)B. O(n)C. O(log2n)D. O(n2)4.设有序顺序表中有n个数据元素,则利⽤⼆分查找法查找数据元素X的最多⽐较次数不超过()。
A. log2n+1B. log2n-1C. log2nD. log2(n+1) 5.设有序表中有1000个元素,则⽤⼆分查找查找元素X最多需要⽐较()次。
A. 25B. 10C. 7D. 16.顺序查找不论在顺序线性表中还是在链式线性表中的时间复杂度为()。
A. O(n)B. O(n2)C. O(n1/2)D. O(1og2n) 7.设⼆叉排序树上有n个结点,则在⼆叉排序树上查找结点的平均时间复杂度为()。
A. O(n)B. O(n2)C. O(nlog2n)D. O(1og2n) 8.()⼆叉排序树可以得到⼀个从⼩到⼤的有序序列。
A. 先序遍历B.中序遍历C. 后序遍历D. 层次遍历9.设⼀组初始记录关键字序列为(13,18,24,35,47,50,62,83,90,115,134),则利⽤⼆分法查找关键字90需要⽐较的关键字个数为()。
A. 1B. 2C. 3D. 410.设某散列表的长度为100,散列函数H(k)=k % P,则P通常情况下最好选择()。
A. 99B. 97C. 91D. 9311.在⼆叉排序树中插⼊⼀个关键字值的平均时间复杂度为()。
A. O(n)B. O(1og2n)C. O(nlog2n)D. O(n2)12.设⼀个顺序有序表A[1:14]中有14个元素,则采⽤⼆分法查找元素A[4]的过程中⽐较元素的顺序为( )。
计算机专业基础综合(数据结构)模拟试卷8(题后含答案及解析) 题型有:1. 单项选择题 2. 综合应用题单项选择题1-40小题,每小题2分,共80分。
下列每题给出的四个选项中,只有一个选项是最符合题目要求的。
1.若某线性表中最常用的操作是在最后一个结点之后插入一个结点和删除第一个结点,则下面最节省运算时间的存储方式是( )。
A.单链表B.带有头指针的单循环链表C.双链表D.带有尾指针的单循环链表正确答案:D解析:在链表中的最后一个结点之后插入一个结点要知道终端结点的地址,所以,单链表、带有头指针的单循环链表、双链表都不合适。
考虑在带有尾指针的单循环链表中删除第一个结点,其时间性能是O(1),所以答案是D。
知识模块:数据结构2.已知两个长度分别为l和s的降序链表,若将它们合并为一个长度为l+s 的升序链表,则最坏情况下的时间复杂度是( )。
A.D(l)B.D(ls)C.D(min(l,s))D.D(max(l,s))正确答案:D解析:在合并过程中,最坏的情况是两个链表中的元素依次进行比较,比较的次数最少是m和n中的最大值。
知识模块:数据结构3.线性表中存放的主要是( )。
A.整型常量B.字符C.数据元素D.信息元素正确答案:C解析:线性表中主要存放的是数据元素,而数据元素可以是整型也可以是字符型,但对于一个线性表来说,所有的数据元素的类型必须相同。
知识模块:数据结构4.下面的叙述中正确的是( )。
I.线性表在链式存储时,查找第i个元素的时间同i的值成正比Ⅱ.线性表在链式存储时,查找第i个元素的时间同i的值无关Ⅲ.线性表在顺序存储时,查找第i个元素的时间同i的值成正比A.仅ⅠB.仅ⅡC.仅ⅢD.Ⅰ、Ⅱ、Ⅲ正确答案:A解析:在线性表链式存储结构中,查找第i个元素的时间与i的位置成正比。
而在顺序存储结构中查找第i个元素的时间与i的位置无关。
知识模块:数据结构5.对于某线性表来说,主要的操作是存取任一指定序号的元素和在最后进行插入运算,那么应该选择( )存储方式最节省时间。
习题八查找一、单项选择题1.顺序查找法适合于存储结构为()的线性表。
A. 散列存储B. 顺序存储或链式存储C. 压缩存储D. 索引存储2.若查找每个记录的概率均等,则在具有n个记录的连续顺序文件中采用顺序查找法查找一个记录,其平均查找长度ASL为( )。
A. (n-1)/2 B. n/2 C. (n+1)/2 D. n3.适用于折半查找的表的存储方式及元素排列要求为( )A.链接方式存储,元素无序 B.链接方式存储,元素有序C.顺序方式存储,元素无序 D.顺序方式存储,元素有序4.当在一个有序的顺序存储表上查找一个数据时,即可用折半查找,也可用顺序查找,但前者比后者的查找速度( )A.必定快 B.不一定 C. 在大部分情况下要快 D.取决于表递增还是递减5.当采用分块查找时,数据的组织方式为 ( )A.数据分成若干块,每块内数据有序B.数据分成若干块,每块内数据不必有序,但块间必须有序,每块内最大(或最小)的数据组成索引块C. 数据分成若干块,每块内数据有序,每块内最大(或最小)的数据组成索引块D.数据分成若干块,每块(除最后一块外)中数据个数需相同6.二叉树为二叉排序树的充分必要条件是其任一结点的值均大于其左孩子的值、小于其右孩子的值。
这种说法()。
A.正确 B. 错误7. 二叉查找树的查找效率与二叉树的((1) )有关,在((2) )时其查找效率最低。
(1): A. 高度 B. 结点的多少 C. 树型 D.结点的位置(2): A. 结点太多B. 完全二叉树C.呈单枝树D. 结点太复杂。
8.如果要求一个线性表既能较快的查找,又能适应动态变化的要求,则可采用( )查找法。
A. 分快查找B. 顺序查找 C. 折半查找D.基于属性9.分别以下列序列构造二叉排序树,与用其它三个序列所构造的结果不同的是( )。
A.(100,80,90, 60, 120,110,130) B.(100,120,110,130,80, 60, 90) C.(100,60, 80, 90, 120,110,130) D. (100,80,60, 90, 120,130,110)10.下图所示的4棵二叉树,( )是平衡二叉树。
单元练习8一.判断题〔以下各题,正确的请在前面的括号内打√;错误的打╳〕〔√〕〔1〕图可以没有边,但不能没有顶点。
〔ㄨ〕〔2〕在无向图中,〔V1,V2〕与〔V2,V1〕是两条不同的边。
〔ㄨ〕〔3〕邻接表只能用于有向图的存储。
〔√〕〔4〕一个图的邻接矩阵表示是唯一的。
〔ㄨ〕〔5〕用邻接矩阵法存储一个图时,所占用的存储空间大小与图中顶点个数无关,而只与图的边数有关。
〔ㄨ〕〔6〕有向图不能进展广度优先遍历。
〔√〕〔7〕假设一个无向图的以顶点V1为起点进展深度优先遍历,所得的遍历序列唯一,则可以唯一确定该图。
〔√〕〔8〕存储无向图的邻接矩阵是对称的,因此只要存储邻接矩阵的上三角〔或下三角〕局部就可以了。
〔ㄨ〕〔9〕用邻接表法存储图时,占用的存储空间大小只与图中的边数有关,而与结点的个数无关。
〔√〕〔10〕假设一个无向图中任一顶点出发,进展一次深度优先遍历,就可以访问图中所有的顶点,则该图一定是连通的。
二.填空题(1)图常用的存储方式有邻接矩阵和邻接表等。
(2)图的遍历有:深度优先搜和广度优先搜等方法。
(3)有n条边的无向图邻接矩阵中,1的个数是_2n____。
(4)有向图的边也称为_ 弧___。
(5)图的邻接矩阵表示法是表示__顶点____之间相邻关系的矩阵。
(6)有向图G用邻接矩阵存储,其第i行的所有元素之和等于顶点i的__出度____。
(7)n个顶点e条边的图假设采用邻接矩阵存储,则空间复杂度为: O〔n2〕。
(8)n个顶点e条边的图假设采用邻接表存储,则空间复杂度为: O〔n+e〕。
(9)设有一稀疏图G,则G采用_邻接表____存储比拟节省空间。
(10)设有一稠密图G,则G采用_邻接矩阵____存储比拟节省空间。
(11)图的逆邻接表存储构造只适用于__有向____图。
(12) n个顶点的完全无向图有 n(n-1)/2_ 条边。
(13)有向图的邻接表表示适于求顶点的出度。
(14)有向图的邻接矩阵表示中,第i列上非0元素的个数为顶点V i的入度。
第8章 查找 测试题 及答案一、填空题1. 在数据的存放无规律而言的线性表中进行检索的最佳方法是 顺序查找(线性查找) 。
2. 线性有序表(a 1,a 2,a 3,…,a 256)是从小到大排列的,对一个给定的值k ,用二分法检索表中与k 相等的元素,在查找不成功的情况下,最多需要检索 8 次。
设有100个结点,用二分法查找时,最大比较次数是 7 。
3. 假设在有序线性表a[20]上进行折半查找,则比较一次查找成功的结点数为1;比较两次查找成功的结点数为 2 ;比较四次查找成功的结点数为 8 ;平均查找长度为 3.7 。
解:显然,平均查找长度=O (log 2n )<5次(25)。
但具体是多少次,则不应当按照公式)1(log 12++=n nn ASL 来计算(即(21×log 221)/20=4.6次并不正确!)。
因为这是在假设n =2m -1的情况下推导出来的公式。
应当用穷举法罗列:全部元素的查找次数为=(1+2×2+4×3+8×4+5×5)=74; ASL =74/20=3.7 !!!4.【计研题2000】折半查找有序表(4,6,12,20,28,38,50,70,88,100),若查找表中元素20,它将依次与表中元素 28,6,12,20 比较大小。
5. 在各种查找方法中,平均查找长度与结点个数n 无关的查找方法是 散列查找 。
6. 散列法存储的基本思想是由 关键字的值 决定数据的存储地址。
7. 有一个表长为m 的散列表,初始状态为空,现将n (n<m )个不同的关键码插入到散列表中,解决冲突的方法是用线性探测法。
如果这n 个关键码的散列地址都相同,则探测的总次数是 n(n-1)/2=( 1+2+…+n-1) 。
(而任一元素查找次数 ≤n-1)二、单项选择题( B )1.在表长为n的链表中进行线性查找,它的平均查找长度为A. ASL=n; B. ASL=(n+1)/2;C. ASL=n +1; D. ASL≈log2(n+1)-1( A )2.折半查找有序表(4,6,10,12,20,30,50,70,88,100)。
数据结构第八章测验一、单选题 (共100.00分)1. 以下属于静态查找的算法是()A. 二叉排序树B. 折半查找C. B+树D. 键树正确答案:B2. 在哈希查找中,不同关键字却有着相同的哈希地址,这种现象称为()A. 哈希地址B. 散列地址C. 哈希冲突D. 地址探测正确答案:C3. 以下描述正确的是()A. 顺序查找要求数据必须有序B. 折半查找必须使用顺序表C. 顺序查找必须从头开始查找D. 分块查找允许数据完全无序正确答案:B4. 已知数据序列为33、66、22、44,把该序列依次插入到初始为空的二叉排序树中。
现插入新数据35,它将是()A. 22的右孩子B. 33的右孩子C. 44的左孩子D. 66的左孩子正确答案:C5. 以下关于平衡二叉树描述错误的是()A. 平衡二叉树不是二叉排序树B. 平衡二叉树属于动态查找C. 平衡因子的绝对值不能超过1D. 当出现不平衡情况时需要做平衡化处理正确答案:A6. 二叉排序树查找中,哪种数据序列的时间复杂度最差()A. 递增序列B. 递减序列C. 前半递增后半递减D. 与排列无关正确答案:C7. 以下不属于哈希函数设计方法的是()A. 数字分析法B. 除留余数法C. 折叠法D. 链地址法正确答案:D8. 以下属于哈希冲突处理方法的是()A. 直接定址法B. 再哈希法C. 平衡二叉树D. 平方取中正确答案:B9. 已知序列19,01,23,14,55,68,11,82,36,哈希函数H(key)=key MOD 11,哈希冲突处理采用线性探测再散列,哈希表长11,地址从0开始,则68在哈希表的位置是()A. 1B. 2C. 3D. 4正确答案:D10. 给定关键字集合33、15、88、31、28、64、44、58、77,哈希函数H(key)=key MOD 13 ,采用链地址法(表头插入),数组下标5的单链表中包含关键字依次是()A. 44、31B. 31、44C. 58、64D. 33、77正确答案:A。
习题8 查找8.1 单项选择题1.顺序查找法适合于存储结构为____的线性表。
A. 散列存储B. 顺序存储或链接存储C. 压缩存储D. 索引存储2.对线性表进行二分查找时,要求线性表必须____。
A. 以顺序方式存储B. 以链接方式存储C. 以顺序方式存储,且结点按关键字有序排序D. 以链接方式存储,且结点按关键字有序排序3.采用顺序查找方法查找长度为n的线性表时,每个元素的平均查找长度为____.A. nB. n/2C. (n+1)/2D. (n-1)/24.采用二分查找方法查找长度为n的线性表时,每个元素的平均查找长度为____。
A.O(n2) B. O(nlog2n) C. O(n) D. O(log2n)5.二分查找和二叉排序树的时间性能____。
A. 相同B. 不相同6.有一个有序表为{1,3,9,12,32,41,45,62,75,77,82,95,100},当二分查找值82为的结点时,____次比较后查找成功。
A. 1B. 2C. 4D. 87.设哈希表长m=14,哈希函数H(key)=key%11。
表中已有4个结点:addr (15)=4; addr (38)=5; addr (61)=6; addr (84)=7如用二次探测再散列处理冲突,关键字为49的结点的地址是____。
A. 8B. 3C. 5D. 98.有一个长度为12的有序表,按二分查找法对该表进行查找,在表内各元素等概率情况下查找成功所需的平均比较次数为____。
A. 35/12B. 37/12C. 39/12D. 43/129.对于静态表的顺序查找法,若在表头设置岗哨,则正确的查找方式为。
A.从第0个元素往后查找该数据元素B.从第1个元素往后查找该数据元素C.从第n个元素往开始前查找该数据元素D.与查找顺序无关10.解决散列法中出现的冲突问题常采用的方法是。
A.数字分析法、除余法、平方取中法B.数字分析法、除余法、线性探测法C.数字分析法、线性探测法、多重散列法D.线性探测法、多重散列法、链地址法11.采用线性探测法解决冲突问题,所产生的一系列后继散列地址。
一.单选题1.数据结构是()A.一种数据类型B.数据的存储结构C.一组性质相同的数据元素的集合D.相互之间存在一种或多种特定关系的数据元素的集合2.算法分析的目的是()A.辨别数据结构的合理性B. 评价算法的优劣C.研究算法中输入与输出的关系D.鉴别算法的可读性3.在线性表的下列运算中,不改变数据元素之间结构关系的运算是()A.插入B.删除C.排序D.定位4.若进栈序列为1,2,3,4,5,6,且进栈和出栈可以穿插进行,则可能出现的出栈序列为()A.3,2,6,1,4,5 B.3,4,2,1,6,5C.1,2,5,3,4,6 D.5,6,4,2,3,15.设串sl=”Data Structures with C++”,s2=”it”,则子串定位函数index(s1,s2)的值为()A.15 B.16C.17 D.186.广义表A=(a,(b),(),(c,d,e))的长度为( )A.4 B.5C.6 D.77.一棵含18个结点的二叉树的高度至少为( )A.3 B.4C.5 D.68..已知二叉树的先序序列为ABDECF,中序序列为DBEAFC,则后序序列为( ) A.DEBAFC B.DEFBCAC.DEBCFA D.DEBFCA9.无向图中一个顶点的度是指图中( )A.通过该顶点的简单路径数B.与该顶点相邻接的顶点数C.通过该顶点的回路数D.与该顶点连通的顶点数10.已知一个图如下所示,从顶点a出发进行广度优先遍历可能得到的序列为( )A.a c e f b d B.a c b d f eC.a c b d e f D.a c d b f e11.在下列排序方法中,平均时间性能为O(nlogn)且空间性能最好的是( )A.快速排序B.堆排序C.归并排序D.基数排序12.已知一组关键字为{25,48,36,72,79,82,23,40,16,35},其中每相邻两个为有序子序列。
对这些子序列进行一趟两两归并的结果是( )A.{25,36,48,72,23,40,79,82,16,35}B.{25,36,48,72,16,23,40,79,82,35}C.{25,36,48,72,16,23,35,40,79,82}D.{16,23,25,35,36,40,48,72,79,82}13.设顺序存储的线性表共有123个元素,按分块查找的要求等分成3块。
数据结构导论自考题模拟8(总分100,考试时间90分钟)一、单项选择题在每小题列出的四个备选项中只有一个是符合题目要求的1. 算法指的是______A. 计算方法B. 排序方法C. 解决某一问题的有限运算序列D. 调度方法2. 在一个单链表中,若p所指结点不是最后结点,s指向已生成的新结点,则在p之后插入s所指结点的正确操作是______A. s->next=p->next;p->next=s;B. p->next=s->next;s->next=p;C. s->next=p;p->next=s;D. s->next=p->next;p=s;3. 下面关于线性表的叙述中,错误的是______A. 线性表采用顺序存储,必须占用一片连续的存储单元B. 线性表采用链接存储,不必占用一片连续的存储单元C. 线性表采用顺序存储,便于进行插入和删除操作D. 线性表采用链接存储,便于进行插入和删除操作4. 设一个栈的输入序列为ABCD,则所得到的输出序列不可能是______A. ABCDB. DCBAC. ACDBD. DABC5. 在队列中存取数据的原则是______A. 后进先出B. 先进先出C. 先进后D. 随意进出6. 一棵二叉树满足下列条件:对任一结点,若存在左、右子树,则其值都大于它的左子树上所有结点的值,而小于右子树上所有结点的值。
现为得到这棵二叉树所有结点的递增序列,应采用的遍历方式是______A. 先序遍历B. 中序遍历C. 后序遍历D. 层次遍历7. 可以唯一地转化成一棵一般树的二叉树的特点是______A. 根结点无左孩子B. 根结点无右孩子C. 根结点有两个孩子D. 根结点没有孩子8. 设二叉树根结点的层次为0,一棵高度为h的满二叉树中的结点个数是______A.2h******+1-19. 无向图中一个顶点的度是指图中______A. 通过该顶点的简单路径数B. 与该顶点相邻接的顶点数C. 通过该顶点的回路数D. 与该顶点连通的顶点数10. 任何一个带权的无向连通图的最小生成树______A. 只有一棵B. 一定有多棵C. 有一棵或多棵D. 可能不存在11. 在图G卢求两个结点之间的最短路径可以采用的算法是______A. 迪杰斯特拉(Dijkstra)算法B. 克鲁斯卡尔(Kruskal)算法C. 普里姆(Prim)算法D. 广度优先遍历(BFS)算法12. 静态查找表与动态查找表二者的根本区别在于______A. 它们的逻辑结构不同B. 施加在其上的操作不同C. 所包含的数据元素的类型不同D. 存储实况不一样13. 当采用分块查找时,数据的组织方式为______A. 数据分成若干块,每块内数据有序B. 数据分成若干块,每块内数据不必有序,但块间必须有序,每块内最大(或最小)的数据组成索引块C. 数据分成若干块,每块内数据有序,每块内最大(或最小)的数据组成索引块D. 数据分成若干块,每块(除最后一块外)中数据个数需相同14. 在排序过程中,键值比较的次数与初始序列的排列顺序无关的是______A. 直接插入排序和快速排序B. 直接插入排序和归并排序C. 直接选择排序和归并排序D. 快速排序和归并排序15. 一组记录的键值为(12,38,35,25,74,50,63,90),按二路归并排序方法对该序列进行一趟归并后的结果为______A. 12,38,25,35,50,74,63,90B. 12,38,35,25,74,50,63,90C. 12,25,35,38,50,74,63,90D. 12,35,38,25,63,50,74,90二、填空题请在每小题的空格中填上正确答案1. 对相同输入数据量的不同输入数据,算法时间用量的最大值是指______ 。
第八章查找习题9.1 判断题(在你认为正确的题后的括号中打√,否则打X)。
(1)用来惟一区分文件中不同记录的属性或属性组称为主关键字。
( )(2)查找成功与否的关键在于是否按主关键字查找。
( )(3)顺序文件必须用一片地址连续的存储空间来存放。
( )(4)只有在顺序存储结构上才能采用顺序查找方法。
( )(7)只要按值有序排列的线性表采用顺序存储结构就可以采用折半查找方法。
( )(8)建立稠密索引的优点是节省存储空间。
( )(9)分块查找的效率与文件中的记录被分成多少块有关。
( )(10)分块查找过程是首先查找索引表,然后再到相应的块中具体查找记录。
( )(11)B-树和B十树都是用来实现动态索引的。
( )(12)在B-树上可以进行顺序查找。
( 1(13)在B+树上可以进行顺序查找。
/ 1(14)采用散列方法存储线性表,不能存储数据元素之间的关系。
( )(15)在散列文件中进行查找不涉及关键字的比较。
( )(16)散列冲突是指同一个关键字对应了多个不同的散列地址。
( )(17)散列表的负载因子等于存人散列表中的关键字的个数。
( )(18)在散列表的查找过程中,关键字的比较次数与表中关键字的数目直接相关。
( )(19)在利用线性探测法处理冲突的散列表中,散列函数值相同的关键字总是存放在一片地址连续的存储单元中。
(20)在采用链地址法处理冲突的散列表中,散列函数值相同的关键字是链接在同一个链表中的。
( )9.2单项选择题。
(1)衡量查找算法性能好坏的主要标准是。
A.参加比较的关键字值的多少B.被查找的关键字值在关键字序列中的位置C.关键字序列中是否存在被查找关键字值D.关键字值的平均比较次数的多少(2)顺序查找方法的优点之一是—。
·A.对于被查找对象几乎没有限制B.适合排序连续顺序文件的查找C.适合链接顺序文件的查找D.查找时间效率高(3)对线性表采用折半查找,该线性表必须。
A.元素按值有序排列B.采用顺序结构C.元素按值有序排列,并且采用顺序存储结构n元素按值有序排列,并且采用链式存储结构(4)下面的说法中,不正确的是——。
A.折半查找方法不适用于按值有序链接的链表的查找B.折半查找方法适用于按值有序的顺序表的查找C.折半查找方法适用于按关键字值大小有序排列的顺序文件的查找D.折半查找方法适用于排序连续顺序文件的查找(5)在有序表(k1,k2,…,k9,)中采用折半查找方法查找99次,其中,至少有一个元素被比较了99次,该元素是——。
A.K99 B.k50 C.K49 D.k1(6)为了实现分块查找,线性表必须采用——结构。
A.顺序存储B.链式存储C.索引存储D.散列存储(7)只能在顺序存储结构上才能实现的查找方法是法。
A.顺序查找B.树型查找C.折半查找D.散列查找(8)在具有15个记录的排序连续顺序文件上采用折半查找方法查找一个文件中不存在的记录,需要进行——次关键字的比较。
A.0 B.4 C.5 D.15(9)若在100个记录中查找其中任意一个记录,最多只要比较5次,则所采用的查找方法可能是——。
A.折半查找B.树型查找C.分块查找D.散列查找(10)若在n个记录中查找其中任意一个记录至少要比较2次,则所采用的查找方法可能是A.分块查找B‘折半查找C.树型查找D.散列查找(11)折半查找过程可以利用一棵称之为判定树的二叉树来描述。
在长度为12的序列中进行折半查找对应的判定树的根结点的右孩子的值(某元素在序列中的位置)是——。
A.7 B.8 C.9 D.10(12)若在序列中采用折半查找方法进行查找,用来描述该查找过程的判定树的形状与——有关。
A.序列中元素的值B.序列中元素的排列次序C.序列中元素的类型D.序列中元素的个数(13)在某序列中采用折半查找方法查找某个元素,依次被比较过的元素在该序列中的位置只能是——。
A.10,15,12,18,19 B.10,15,12,13,14C.10,15,16,18,19 D.10,15,11,13,14(14)在某序列中采用折半查找方法查找某个元素,依次被比较过的元素在该序列中的位置不可能是——。
A.10,5,7,8,9 B.10,5,2,1C.10,5,6,7,8 D.10,5,7,6(15)将数据元素2,4,6,8,10,12,14,16,18,20依次存放于一个一维数组中,然后采用折半查找方法查找元素12,被比较过的数组元素的下标依次为——。
A.10,16,12 B.10,12,16 C.4,7,5 D.4,5,7(16)索引文件中的索引表具有的特点是————。
A.索引项按关键字值有序,并且由用户提供B.索引项按关键字值有序,并且由系统提供C.索引项按关键字值无序,并且由用户提供D.索引项按关键宇值无序,并且由系统提供(17)m阶B-树中的m是指——。
A.每个结点至少具有m棵子树B.每个结点最多具有m棵子树C.分支结点中包含的关键字的个数D.m阶B-树的深度(18)下面关于B-树和B+树的叙述中,不正确的是——。
A.B-树和B+树都是平衡的多分树B.B-树和B+树都可以用于文件的索引结构D.B—树和B+树都能有效地支持随机检索(19)下面的命题中,不成立的是。
A.m阶B-树中的每一个分支结点的子树的数量都小于或等于m。
B.m阶B-树中的每一个分支结点的子树的数量都大于或等于m/2上取整C.m阶B-树中的任何一个结点的子树的深度都相等。
D.m阶B—树中有k个子树的分支结点包含k—1个关键字。
(20)评价散列函数质量好坏的标准是——。
A.函数是否简单B.计算是否快C.是否是解析式D.函数的取值是否均匀(21)在一个初始状态为空的散列表中依次插入关键字序列(MON,TUE,WED,THU,FRI,SAT,SUN),散列函数为H(key):i%7,其中,i为关键字key的第一个字母在英文字母表中的序号,地址值域为[0:6],采用线性再散列法处理冲突。
(22)在具有n个元素的序列中进行查找,平均查找长度为O(n)的方法是——。
A.顺序查找方法B.散列查找方法C.分块查找方法D.树型查找方法9.3 填空题。
(1)文件的逻辑结构是指——,文件的物理结构是指——。
(2)文件在物理结构中通常有——、——和——三种组织方式。
(3)文件的关键字是——。
(4)文件最基本操作是和。
(5)对线性表采用折半查找方法,该线性表必须采用——存储结构,并且——。
(6)在按值有序的线性表(5,8,11,12,15,20,32,41,57)中采用折半查找法查找20需要进行——次元素间的比较。
(7)具有n个结点的判定树的深度h = ——。
(8)若每个记录的查找概率相等,则在具有n个记录的顺序文件中采用顺序查找法的平均查找长度ASL=——。
(9)在具有n个记录的排序连续顺序文件中采用折半查找法的平均查找长度ASL=?(10)索引文件的索引表中的一个索引项是——之间的对照关系。
(11)索引文件包括——和——两个部分。
(12)索引表的特点是——,并且——。
(13)在索引文件中查找一个记录的过程是先查——,然后——。
(14)具有144项的表分成——块最好,若每块的最佳长度为8,则平均查找长度为——(15)在3阶B-树上,每个分支结点包含的子树的数目最多为——,最少为——。
(16)一棵B+树上通常有两个头指针(即查找的人口指针),其中一个指向——,另一个指向——。
(17)散列函数建立了——之间的对应关系。
(18)设计一个散列表通常应包括三个内容,分别是——、——和——。
(19)一个好的散列函数是指——。
处理冲突的方法通常有——、——和——一O(20)一个待散列存储的线性表为K二(18,25,63,50,42,32,9),散列函数为H(k):k%9,则与元素18发生冲突的元素有——个。
9.4 试叙述索引顺序文件与顺序文件相比较的优缺点,指出一种适用于索引顺序文件的外存设备。
9.5 已知一个长度为12的线性表(Dec,Feb,Nov,Oct,Jul,Sept,Aug,Apr,May,Jun,Jan,Mar)。
(1)按该线性表中元素的顺序构造出一棵二叉排序树;(2)若每个元素的查找概率均等,查找此二叉排序树中任意一个结点的平均查找长度ASL是多少?(3)若对线性表的元素按字典顺序从小到大排列以后,再用折半查找方法,则查找其中任意一个元素的平均查找长度ASL是多少?(4)画出相应的平衡二叉树。
9.6 折半查找过程可以利用一棵判定树来描述。
请画出n‘13时的判定树。
9.7 何谓散列冲突?何谓冲突处理?简要说明冲突处理的过程。
9.8 已知散列函数为H(k)二k%7,并采用线性探测再散列方法处理冲突,所建立的散列表如下所示,请依次将关键字17,27填人表中。
9.9 在初始为空的散列表中依次插入以下关键字序列:Jan,Feb,Mar,Apr,May,Jun,Jul,Aug,Sept,Oct,Nov,Dec。
散列函数为H(k):i%p,其中,i为关键字的第一个字母在英文字母表中的序号。
请分别画出按以下两种情况构成的散列表:(1)散列地址空间为[0,12],p=13,用线性再散列法处理冲突;(2)散列地址空间为[0,6],p=7,用链地址法处理冲突。
9.10 在散列函数与散列地址范围都分别相同的前提下,采用链地址法处理冲突比采用开放地址法处理冲突的时间效率要高,为什么?9.11 已知有长度为M的散列表HT[0,M-1],散列函数为H(k),并且采用线性探测再散列方法处理冲突。
请写出在该散列表中查找关键字值为key的元素存在与否的算法。
若存在,则给出它在表中的位置,否则给出相应的信息。
9.12 请写出一个从散列文件中删除一个记录的算法。
设所用的散列函数为H(k),处理冲突的方法为线性再散列法。
9.13 请写出一个从散列文件中删除一个记录的算法。
设所用的散列函数为H(k),处理冲突的方法为链地址法。
9.14 已知一长度为n的线性表A和待散列地址空间为[0,m—1),其中m≥n。
若采用除留余数法构造散列函数与步长为根号下N下取整的线性探测再散列法处理冲突,请分别写出建立该散列表和在该散列表上进行查找的算法。
9.15 已知散列函数为H(k)=(3*k)%11,采用线性探测再散列法处理冲突。
对下列关键字值序列构造一个散列地址空间为[0,10]的散列表,并求出ASL。
(22,41,53,8,46,30,1,3l,66)历年考试题11.若用二分查找法取得的中间位置元素键值大于被查找值,说明被查找值位于中间值的前面,下次的查找区间为从原开始位置至()A.该中间位置B.该中间位置-1C.该中间位置+1 D.该中间位置/212.散列文件不能()A.随机存取B.索引存取C.按关键字存取D.直接存取13.若检索顺序文件各个记录的概率相同,设文件占用的页块数为n,则按关键字存取时的平均访问外存次数为()A.n/2 B.nC.n/4 D.log n10.在最坏的情况下,查找成功时二叉排序树的平均查找长度()A.小于顺序表的平均查找长度B.大于顺序表的平均查找长度C.与顺序表的平均查找长度相同D.无法与顺序表的平均查找长度比较11.闭散列表中由于散列到同一个地址而引起的“堆积”现象,是由()A.同义词之间发生冲突引起的B.非同义词之间发生冲突引起的C.同义词之间或非同义词之间发生冲突引起的D.散列表“溢出”引起的12.从外存设备的观点看,存取操作的基本单位是()A.逻辑记录B.数据元素C.文件D.物理记录13.对文件进行检索操作时,每次都要从第一个记录开始的文件是()A.顺序文件B.索引文件C.顺序索引文件D.散列文件5、考虑具有如下性质的二叉树:除叶子结点外,每个结点的值都大于其左子树上的一切结点的值,并小于等于其右子树上的一切结点的值。