数据结构习题自测

合集下载

数据结构自测题及答案

数据结构自测题及答案

数据结构自测题及答案**数据结构自测题及答案**一、选择题(每题2分,共10分)1. 数据结构是一种用于组织和管理数据的方式,它主要关注的是:A. 数据的存储和表示方式B. 数据的输入和输出方式C. 算法和数据的交互方式D. 数据处理的速度和效率2. 在数据结构中,数组是一种:A. 线性结构B. 树形结构C. 图形结构D. 集合结构3. 下列哪种数据结构是先进先出(FIFO)的:A. 栈B. 队列C. 链表D. 哈希表4. 在二叉树中,每个节点最多有几个子节点:A. 0B. 1C. 2D. 35. 下列哪种数据结构适合用于实现图的存储:A. 数组B. 链表C. 堆D. 散列表二、填空题(每题2分,共10分)1. 在栈中,最后一个进入栈的元素最先出栈,这种特点叫做**后进先出**。

2. 哈希表一般是通过**散列函数**将键映射到存储位置上。

3. 图中节点之间的关系可以用**边**来表示。

4. 在二叉搜索树中,左子树的值都小于根节点的值,右子树的值都大于根节点的值,这种特点叫做**二叉搜索树的性质**。

5. 在链表中,每个节点都包含一个指向下一个节点的**指针**。

三、判断题(每题2分,共10分)1. 队列是一种先进先出(FIFO)的数据结构。

(正确)2. 图是一种非线性的数据结构。

(正确)3. 二叉树是一种树形数据结构,每个节点最多有两个子节点。

(正确)4. 栈可以用数组和链表两种方式实现。

(正确)5. 哈希表的插入和查询操作的时间复杂度都为O(1)。

(错误)四、程序设计题(总分20分)请编写一个程序,实现以下功能:1. 定义一个结构体,用于表示学生信息,包含姓名、年龄和成绩三个字段。

2. 动态创建一个长度为5的数组,用于存储学生信息。

3. 通过键盘输入,依次为每个学生的姓名、年龄和成绩赋值,并存储到数组中。

4. 分别计算学生的平均年龄和平均成绩,并输出结果。

代码示例(C语言):```c#include<stdio.h>#include<stdlib.h>struct Student {char name[20];int age;float score;};int main() {struct Student* students = (struct Student*)malloc(5 * sizeof(struct Student));for (int i = 0; i < 5; i++) {printf("请输入第 %d 个学生的姓名:", i + 1);scanf("%s", students[i].name);printf("请输入第 %d 个学生的年龄:", i + 1);scanf("%d", &students[i].age);printf("请输入第 %d 个学生的成绩:", i + 1);scanf("%f", &students[i].score);printf("\n");}int totalAge = 0;float totalScore = 0.0;for (int i = 0; i < 5; i++) {totalAge += students[i].age;totalScore += students[i].score;}float avgAge = totalAge / 5.0;float avgScore = totalScore / 5.0;printf("平均年龄: %.2f\n", avgAge);printf("平均成绩: %.2f\n", avgScore);free(students);return 0;}```以上就是自测题及答案的全部内容。

数据结构自测试题二

数据结构自测试题二

数据结构自测试题二一、判断题(每题2分,共12分)1、健壮的算法不会因非法的输入数据而出现莫名其妙的状态。

()2、数据的物理结构是指数据在计算机内的实际存储形式。

()3、队列是一种插入与删除操作都在表的同一端进行的线性表。

()4、从AOE网的开始点到完成点之间弧的数目最多的简单路径称为关键路径。

()5、内部排序要求数据一定要以顺序方式存储。

()6、N个顶点的连通图至少有N-1条边。

()二、单选题(每题2分,共20分)1、一个算法应该是()1.A、问题求解步骤的描述B、程序C、要满足五个基本特性D、A和B2、以下数据结构中,()是非线性数据结构1.A、树B、字符串C、队D、栈3、完成在双循环链表结点p之后插入s的操作是()1.A、p->next=s; s->prior=p; p->next->prior=s; s->next=p->next;2.B、p->next->prior=s; p->next=s; s->prior=p; s->next=p->next;3.C、s->prior=p; s->next=p->next; p->next=s; p->next->prior=s;4.D、s->prior=p; s->next=p->next; p->next->prior=s; p->next=s; 4、对于顺序存储的线性表,访问结点和增加、删除结点的时间复杂度为()。

1.A、O(n) O(n) B、O(n) O(1) C、O(1) O(n) D、O(1) O(1) 5、栈和队列都是()1.A、顺序存储的线性结构B、链式存储的非线性结构2.C、限制存取点的线性结构D、限制存取点的非线性结构6、串的长度是指()1.A、串中所含不同字母的个数B、串中所含字符的个数2.C、串中所含不同字符的个数D、串中所含非空格字符的个数7、设给定权值总数有n 个,其哈夫曼树的结点总数为()1.A、不确定B、2n C、2n+1 D、2n-18、下列哪一种图的邻接矩阵是对称矩阵?()1.A、有向图B、无向图C、AOV网D、AOE网9、当采用分块查找时,数据的组织方式为()1.A、数据分成若干块,每块内数据有序2.B、数据分成若干块,每块内数据不必有序,但块间必须有序,每块内最大(或最小)的数据组成索引块3.C、数据分成若干块,每块内数据有序,每块内最大(或最小)的数据组成索引块4.D、数据分成若干块,每块(除最后一块外)中数据个数需相同10、一组记录的关键码为(46,79,56,38,40,84),则利用快速排序的方法,以第一个记录为基准得到的一次划分结果为()。

数据结构试题及答案(10套)

数据结构试题及答案(10套)

数据结构试题及答案(10套)数据结构试题及答案(10套)根据您的需求,我为您准备了10套数据结构试题及答案。

每套试题包含以下几个部分:选择题、填空题、编程题及答案解析。

下面是试题的具体内容:第一套试题:选择题:1. 在数据结构中,什么是栈?A. 先进先出(FIFO)的数据结构B. 后进先出(LIFO)的数据结构C. 随机访问的数据结构D. 无序排列的数据结构2. 以下哪种操作与队列的特性不相符?A. 入队操作B. 出队操作C. 查找操作D. 获取队首元素填空题:1. ______ 是一种动态集合,支持插入、删除和查找等操作。

2. 在二叉搜索树中,中序遍历的结果是________。

编程题:实现一个栈的数据结构,并包含以下操作:- push(x):将元素 x 压入栈中- pop():删除栈顶的元素并返回该元素- top():获取栈顶元素的值- empty():检查栈是否为空答案解析:选择题:B、C填空题:1. 集合 2. 升序序列编程题:略第二套试题:选择题:1. 以下哪个数据结构是一种广度优先搜索的应用?A. 栈B. 队列C. 堆D. 链表2. 在链表中,如果要删除一个节点,只给出该节点的指针,那么需要通过什么方式完成删除操作?A. 直接删除该节点B. 指向该节点的前一个节点的指针C. 指向该节点的后一个节点的指针D. 无法完成删除操作填空题:1. 树是一种________的数据结构。

2. 二叉树每个节点最多有______个子节点。

编程题:实现一个队列的数据结构,并包含以下操作:- enqueue(x):将元素 x 入队- dequeue():删除队首的元素并返回该元素- peek():获取队首元素的值- is_empty():检查队列是否为空答案解析:选择题:B、B填空题:1. 分层组织 2. 2编程题:略(以下部分省略)通过以上的题目,您可以对数据结构的知识点进行综合练习和复习。

每套试题包含了不同难度和类型的题目,能够帮助您全面了解和掌握数据结构的概念和操作。

数据结构试卷试题及答案

数据结构试卷试题及答案

数据结构试卷试题及答案一、选择题(每题5分,共40分)1. 数据结构是研究数据元素的()A. 存储结构B. 处理方法C. 逻辑结构D. 所有以上内容答案:D2. 在数据结构中,通常采用()方式来表示数据元素之间的逻辑关系。

A. 顺序存储结构B. 链式存储结构C. 索引存储结构D. 散列存储结构答案:B3. 下面哪一个不是栈的基本操作?()A. 入栈B. 出栈C. 判断栈空D. 获取栈顶元素答案:D4. 下面哪一个不是队列的基本操作?()A. 入队B. 出队C. 判断队列空D. 获取队头元素答案:D5. 下面哪一个不是线性表的特点?()A. 有且只有一个根节点B. 每个节点最多有一个前驱和一个后继C. 数据元素类型相同D. 数据元素类型可以不同答案:D6. 在下列哪种情况中,使用链式存储结构比顺序存储结构更合适?()A. 数据元素经常插入和删除B. 数据元素大小不固定C. 数据元素个数不确定D. 所有以上情况答案:D7. 下面哪一个不是树的遍历方式?()A. 前序遍历B. 中序遍历C. 后序遍历D. 翻转遍历答案:D8. 在下列哪种情况中,使用散列存储结构比其他存储结构更合适?()A. 数据元素个数较少B. 数据元素查找频繁C. 数据元素插入和删除频繁D. 数据元素大小不固定答案:B二、填空题(每题5分,共30分)9. 栈是一种特殊的线性表,它的插入和删除操作都限定在表的一端进行,这一端称为______。

答案:栈顶10. 队列是一种特殊的线性表,它的插入操作在表的一端进行,这一端称为______,而删除操作在另一端进行,这一端称为______。

答案:队尾、队头11. 二叉树中的节点包括______和______。

答案:根节点、子节点12. 在图的存储结构中,邻接矩阵表示法用______个一维数组来表示图中各个顶点之间的关系。

答案:两个13. 散列存储结构中,关键码到存储地址的映射方法称为______。

数据结构习题(包含全部答案解析)

数据结构习题(包含全部答案解析)

数据结构习题集(自编)第一章绪论一、选择题1.数据结构是一门研究非数值计算的程序设计问题中的操作对象以及它们之间的()和运算的学科。

A.结构B.关系 C.运算 D.算法2.在数据结构中,从逻辑上可以把数据结构分成()。

A.动态结构和静态结构 B.紧凑结构和非紧凑结构C.线性结构和非线性结构 D.逻辑结构和存储结构3.线性表的逻辑顺序和存储顺序总是一致的,这种说法()。

A.正确B.不正确 C.无法确定 D.以上答案都不对4.算法分析的目的是()。

A.找出算法的合理性 B.研究算法的输人与输出关系C.分析算法的有效性以求改进 D.分析算法的易懂性5. 算法的时间复杂度取决于()A.问题的规模B待处理数据的初态 C. A和B6.一个算法应该是()。

A.程序B.问题求解步骤的描述C.要满足五个基本特性 D.A和C.7. 下面关于算法说法错误的是()A.算法最终必须由计算机程序实现B.为解决某问题的算法与为该问题编写的程序含义是相同的C. 算法的可行性是指指令不能有二义性D. 以上几个都是错误的8.以下与数据的存储结构无关的术语是()。

A.循环队列 B. 链表 C. 哈希表 D. 栈9.在下面的程序段中,对x的赋值语句的频度为()for(i=0;i<n;i++)for(j=0;j<n;j++)x=x+1;nA. 2n B.n C.n2 D.log210.以下数据结构中,()是非线性数据结构A.树 B.字符串 C.队列 D.栈11. 下列数据中,()是线性数据结构。

A.哈夫曼树 B.有向无环图 C. 二叉排序树 D. 栈12.以下属于逻辑结构的是()。

A.顺序表 B. 哈希表 C.有序表 D. 单链表二、填空题1、_______是信息的载体,是对客观事物的符号表示,它能够被计算机识别、存储、加工和处理,________是对能够有效的输人到计算机中并且能够被计算机处理的符号的总称。

(数据、数据)2、数据元素是数据的______,有些情况下也称为元素、结点、顶点、记录等。

数据结构自测题答案

数据结构自测题答案

单选题
1.在深度为5的满二叉树中,叶子节点个数为?( C )
A:32 B: 31 C: 16 D:15
2.如果进栈序列为:e1,e2,e3,e4则出栈序列正确的是?(B )
A: e3,e1,e4,e2
B: e2,e4,e3,e1
C: e3,e4,e1,e2
D: 任意序列
3.数据的__C___包括集合结构、线性结构、树结构和图状结构四个基本类型。

A:算法描述
B:基本运算
C:逻辑结构
D:存储结构
4.数据的存储结构包括:顺序、___D__、索引和散列四个基本类型。

A:向量
B:数组
C:集合
D:链式
5.假设一个栈的输入顺序为:A,B,C,D,E则下列不可能是栈的输出序列的是?(b)
A:BCDAE
B: EDACB
C: BCADE
D: AEDCB
6.线性表的二分法查询的前提条件是?(A)
A:线性表以顺序方式存储,并且按关键码值排好序
B: 线性表以链式方式存储,并且按关键码值排好序
C: 线性表以顺序方式存储, 并且按关键码的检索频率排好序
D: 线性表以链式方式存储, 并且按关键码的检索频率排好序
7.以下四种排序方法,需要附加内存空间最大的是?(D)
A:插入排序
B: 选择排序
C: 快速排序
D: 归并排序
8.在顺序栈中进行退栈操作时,___D___。

A;谁先谁后都可以
B:先移动栈顶指针,后取出元素
C:不分先后,同时进行
D:先取出元素,后移动栈顶指针
填空题
9.稳定的排序方法有:插入派讯、冒泡排序和归并排序。

10.线性链表属于数据结构中的_____存储___结构。

数据结构自测题答案

数据结构自测题答案

第1章绪论二、填空题1. 4种基本结构是:集合、线性结构、树形结构、图状结构。

2. 树形结构中元素的关系是一对多,图形结构中元素的关系是多对多。

3. 顺序存储结构中数据元素的存储位置与其逻辑顺序是对应的。

4. 算法效率的度量方法有:事后统计方法和事前分析估算方法。

5. 好算法应达到的目标:正确性、可读性、健壮性、执行时间短、存储量低。

6. 抽象数据类型可细分为3种:原子类型、固定聚合类型和可变聚合类型。

7. 抽象数据类型的定义包括:数据对象的定义、数据关系的定义、基本操作的定义。

三、判断题五、应用题1. 按增长率从小到大的顺序排列下列各函数:(2/3)n ,nlog,n ,n2 ,n!22. 写出以下各函数的功能,并求出其时间复杂度。

(1) 功能是判断n是否为素数,时间复杂度为O(√n ) 。

(2) 功能是计算1!+2!+…+n! ,时间复杂度为O(n ) 。

(3) 功能是计算1!+2!+…+n! ,时间复杂度为O(n2 ) 。

六、算法题1. 编写算法计算1!+2!+…+n!,并使算法的时间复杂度为O(n)。

算法思想:用循环实现阶乘的累加求和,注意在求n!时,使用前一次循环中已经求出的(n-1)!的结果。

double factorial(int n){ int i;double p=1, sum=0;for( i=1; i<=n; i++){ p=p*i;sum=sum+p;}return(sum);}2. 编写算法计算2i (i=0,1,2,…,n),并将计算结果存入数组a中,设计算机中允许的最大整数值为MAXINT,则当2k >MAXINT(0≤k≤n)时,应进行出错处理。

算法思想:先判断n的取值是否合法,若非法则直接退出程序,若n 合法则继续计算2i,在计算2i时,需要判断2i的值是否大于MAXINT/2,这个条件其实就是判断2i+1的值是否大于MAXINT#define arrsize 100#define MAXINT 65535void calculate(int a[ ], int n){ int i;if(n<=0 || n>arrsize){ printf("n error!\n");exit(-1);}a[0]=1;printf("a[0]=%d\n", a[0]);for(i=1; i<n; i++){ a[i]=a[i-1]*2;printf("a[%d]=%d\n", i, a[i]);if( a[i]>MAXINT/2 ){ printf(“i=%d, ERROR!\n”, i+1);break;}}}第2章线性结构一、选择题二、填空题1. 需向后移动__n-i+1____个元素。

数据结构自测题及解答

数据结构自测题及解答

一、概念题(每空0.5分,共28分)1.树(及一切树形结构)是一种“________”结构。

在树上,________结点没有直接前趋。

对树上任一结点X来说,X是它的任一子树的根结点惟一的________。

2.由3个结点所构成的二叉树有种形态。

3.一棵深度为6的满二叉树有个分支结点和个叶子。

4.一棵具有257个结点的完全二叉树,它的深度为。

5.二叉树第i(i>=1)层上至多有______个结点;深度为k(k>=1)的二叉树至多有______个结点。

6.对任何二叉树,若度为2的节点数为n2,则叶子数n0=______。

7.满二叉树上各层的节点数已达到了二叉树可以容纳的______。

满二叉树也是______二叉树,但反之不然。

8.设一棵完全二叉树有700个结点,则共有个叶子结点。

9.设一棵完全二叉树具有1000个结点,则此完全二叉树有个叶子结点,有个度为2的结点,有个结点只有非空左子树,有个结点只有非空右子树。

10.一棵含有n个结点的k叉树,可能达到的最大深度为,最小深度为。

11.二叉树的基本组成部分是:根(N)、左子树(L)和右子树(R)。

因而二叉树的遍历次序有六种。

最常用的是三种:前序法(即按N L R次序),后序法(即按次序)和中序法(也称对称序法,即按L N R次序)。

这三种方法相互之间有关联。

若已知一棵二叉树的前序序列是BEFCGDH,中序序列是FEBGCHD,则它的后序序列必是。

12.中序遍历的递归算法平均空间复杂度为。

13.二叉树通常有______存储结构和______存储结构两类存储结构。

14.如果将一棵有n个结点的完全二叉树按层编号,则对任一编号为i(1<=i<=n)的结点X有:(1)若i=1,则结点X是______;若i〉1,则X的双亲PARENT(X)的编号为______。

(2)若2i>n,则结点X无______且无______;否则,X的左孩子LCHILD(X)的编号为______。

数据结构自测练习

数据结构自测练习

《数据结构》--------概论测验1.计算机解决实际问题的基本过程是怎样的?2.《数据结构》课程研究的内容实质是什么?3.独立于计算机之外的数据关系称为什么关系?分为几类?4.在计算机之内的数据关系称为什么关系?有几种?5.在理解数据结构的概念时,应该把哪三个方面看成一个整体?6.简略回答为什么要学习数据结构?7.计算机处理的数据对象集合包含哪些元素?8.数据运算包含哪些?9.算法是什么?其特征有哪些?10.如何评价算法?--------线性表测验1.线性表的特征是什么?非线性表的特征呢?2.画出线性表的顺序存储结构示意图,并用C语言描述其存储结构。

线性表的顺序存储结构的设计,对你在程序设计中有什么启示?3.从一个长度为n的顺序表中,在第i个元素之前插入一个元素需要向后移动个元素。

(A) n-i (B) n- i +1 (C ) n- i -1 (D) i如果删除第i个元素时,需要向前移动个元素。

(A)n-i (B) n- i +1 (C ) n- i -1 (D) i4.画出线性表的链式存储结构示意图,并用C语言描述其存储结构。

5.在一个单向链表中,若要在指针q所指的结点的后面插入一个由指针p所指的结点,则需要执行那些语句,请写出这些语句。

6.在一个单向链表中,如果这时需要删除p所指的结点,又需要执行那些语句,请写出这些语句。

7.在顺序栈中,假定以高端地址作为栈底,以top作为栈顶,则当做入栈处理时,top 的变化为。

(A)不变(B) top=0 (C ) top=top -1 (D) top=top+18.若入栈序列为A、B、C、D、E,入栈过程中可以出栈,则不可以是出栈序列。

(A)ABCDE (B)BCDEA (C)EABCD (D)EDCBA9.在一个顺序存储的循环队列中,队首指向队首元素的。

(A)前一个位置 (B)后一个位置 (C)队首元素位置10.在具有n个单元的顺序存储的循环队列中,假定front、rear 分别为队首和队尾指针,则判断队满的条件是。

数据结构各章自测题及答案

数据结构各章自测题及答案

第一章概论 自测题答案一、填空题1. 数据结构是一门研究非数值计算的程序设计问题中计算机的 操作对象 以及它们之间的 关系 和运算等的学科。

2. 数据结构被形式地定义为(D, R ),其中D 是 数据元素 的有限集合,R 是D 上的 关系 有限集合。

3. 数据结构包括数据的 逻辑结构 、数据的 存储结构 和数据的 运算 这三个方面的内容。

4. 数据结构按逻辑结构可分为两大类,它们分别是 线性结构 和 非线性结构 。

5. 线性结构中元素之间存在一对一关系,树形结构中元素之间存在一对多关系,图形结构中元素之间存在多对多关系。

6. 在线性结构中,第一个结点 没有 前驱结点,其余每个结点有且只有 1个前驱结点;最后一个结点 没有 后续结点,其余每个结点有且只有1个后续结点。

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

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

9.数据的存储结构可用四种基本的存储方法表示,它们分别是顺序 、 链式 、 索引 和 散列 。

10. 数据的运算最常用的有5种,它们分别是插入 、 删除、修改、 查找 、排序。

11. 一个算法的效率可分为 时间 效率和 空间 效率。

二、单项选择题( 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个特性。

数据结构(第二版) 模拟试题自测卷AB卷带答案3

数据结构(第二版) 模拟试题自测卷AB卷带答案3

试卷B一、选择题(本题共20分,每题2分)1.在数据结构中,从逻辑上可以把数据结构分成( ) 。

A .动态结构和静态结构 B. 线性结构和非线性结构 C. 紧凑结构和非紧凑结构 D. 内部结构和外部结构 2. 下列程序段的时间复杂度是( )count=0;for(k=1;k<=n;k*=2) for(j=1;j<=n;j++) count++;A.O(nlog2n)B.O(n)C.O(log2n)D.O(n2) 3. 以下描述错误的是:( )A. 线性表是n 个数据元素的有限非空集合。

B. 栈和队列都是操作受限的线性表。

C. 串(或字符串)是由零个或多个字符组成的有限序列。

D. 非空栈中的栈顶指针top 始终指向栈顶元素的下一个位置。

4. 若采用少用一个队列空间的方法来区分队满队空两种状态,则判定一个顺序循环队列 Q (最大队列长度MAXSIZE )为满队列的条件是( )。

A. Q.front=Q.rearB. Q.front!=Q.rearC. Q.front=(Q.rear+1) % MAXSIZED. Q.front!=(Q.rear+1) % MAXSIZE 5. 按照二叉树的定义,具有 3 个结点的二叉树有( )种。

A. 3 B. 4 C. 5 D. 66. 设矩阵A (如下图所示)是一个对称矩阵,为了节省存储,将其下三角(包括对角线)部分按行序存放在一维数组 B[n(n+1)/2]中,对下三角部分中任一元素 ai,j(i ≥j),在一维数组 B 的下标位置k 的值是( )。

A. i(i-1)/2+j-1 B. i(i-1)/2+j C. i(i+1)/2+j-1 D. i(i+1)/2+j0,01,01,11,01,11,1...............n n n n a a a A a a a ----⎡⎤⎢⎥⎢⎥=⎢⎥⎢⎥⎣⎦7. 有一个有序表为{5, 18,23, 33, 42, 54,56,78},当折半查找56时,经过( )次比较后查找成功。

数据结构在线自测

数据结构在线自测

单项选择题第1题由权值分别为3,8,6,2,5的叶子结点生成一棵哈夫曼树,它的带权路径长度为( )A、48B、51C、63D、72第2题按照二叉树的定义,具有3个结点的二叉树有()种。

A、3B、4C、5D、6第3题有n个结点的二叉树,采用二叉链表存储,空指针的个数为()A、n-1B、nC、n+1D、n+2第4题在有n个结点的哈夫曼树中,总的结点个数是()。

A、nB、2n-1C、2nD、2n+1第5题若一棵二叉树具有10个度为2的结点,则该二叉树的度为0的结点个数是( )A、9B、10C、11D、12第6题要连通具有n个顶点的有向图,至少需要()条边。

A、n-1B、nC、n+1D、2n判断题第7题后序序列和中序序列能唯一确定一棵二叉树。

正确错误第8题常用的图的遍历算法包括深度优先搜索和广度优先搜索。

正确错误第9题图G由两个集合V(G)和E(G)所组成,其中顶点集V(G)和边集E(G)都可以为空集。

正确错误第10题图是非线性结构。

正确错误第11题邻接表表示法和邻接矩阵表示法是图的常用的存储方法。

正确错误第12题一个有向无环图的拓扑排序序列是唯一的。

()正确错误单项选择题第1题下列排序方法中,稳定的是()A、快速排序B、堆排序C、基数排序D、希尔排序第2题排序方法中,从未排序序列中依次取出元素与已排序序列(初始时为空)中的元素进行比较,将其放入已排序序列的正确位置上的方法,称为()。

A、希尔排序B、起泡排序C、直接插入排序D、简单选择排序第3题在待排序的元素序列基本有序的前提下,效率最高的排序方法是()。

A、直接插入排序B、简单选择排序C、快速排序D、2路归并排序第4题下列排序方法中,稳定的是()A、快速排序B、堆排序C、希尔排序D、基数排序第5题衡量查找算法效率的主要标准是()。

A、元素个数B、所需的存储量C、平均查找长度D、算法难易程度第6题一个排序算法的时间复杂度与()有关。

A、排序算法的稳定性B、所需比较关键字的次数C、所采用的存储结构D、所需辅助存储空间的大小判断题第7题快速排序并非在任何情况下都比其他排序方法速度快。

《数据结构》第3章自测卷(+答案)

《数据结构》第3章自测卷(+答案)

第3章栈和队列一、填空题1. 线性表、栈和队列都是线性结构,可以在向量的任何位置插入和删除元素;对于栈只能在栈顶插入和删除元素;对于队列只能在队尾插入和队头删除元素。

2. 栈是一种特殊的线性表,允许插入和删除运算的一端称为栈顶。

不允许插入和删除运算的一端称为栈底。

3. 队列是被限定为只能在表的一端进行插入运算,在表的另一端进行删除运算的线性表。

4. 在一个循环队列中,队首指针指向队首元素的前一个位置。

5. 在具有n个单元的循环队列中,队满时共有n-1个元素。

6. 向栈中压入元素的操作是先移动栈顶指针,后存储元素。

7. 从循环队列中删除一个元素时,其操作是先移动队首指针,后取出元素。

8. 带表头结点的空循环双向链表的长度等于0 。

二、判断正误(×)1. 线性表的每个结点只能是一个简单类型,而链表的每个结点可以是一个复杂类型。

(×)2. 在表结构中最常用的是线性表,栈和队列不太常用。

(√)3. 栈是一种对所有插入、删除操作限于在表的一端进行的线性表,是一种后进先出型结构。

(√)4. 对于不同的使用者,一个表结构既可以是栈,也可以是队列,也可以是线性表。

(×)5. 栈和链表是两种不同的数据结构。

(×)6. 栈和队列是一种非线性数据结构。

(√)7. 栈和队列的存储方式既可是顺序方式,也可是链接方式。

(√)8. 两个栈共享一片连续内存空间时,为提高内存利用率,减少溢出机会,应把两个栈的栈底分别设在这片内存空间的两端。

(×)9. 队是一种插入与删除操作分别在表的两端进行的线性表,是一种先进后出型结构。

(×)10. 一个栈的输入序列是12345,则栈的输出序列不可能是12345。

三、单项选择题( B )1. 栈中元素的进出原则是A.先进先出B.后进先出C.栈空则进D.栈满则出(C)2. 若已知一个栈的入栈序列是1,2,3,…,n,其输出序列为p1,p2,p3,…,pn,若p1=n,则pi为A.i B.n=i C.n-i+1 D.不确定(B)3. 判定一个栈ST(最多元素为m0)为空的条件是A.ST->top<>0 B.ST->top=0 C.ST->top<>m0 D.ST->top=m0(A)4. 判定一个队列QU(最多元素为m0)为满队列的条件是A.QU->rear -QU->front = = m0 B.QU->rear -QU->front -1= = m0C.QU->front = = QU->rear D.QU->front = = QU->rear+1( D )5.数组Q[n]用来表示一个循环队列,f为当前队列头元素的前一位置,r为队尾元素的位置,假定队列中元素的个数小于n,计算队列中元素的公式为(A)r-f; (B)(n+f-r)% n; (C)n+r-f; (D)(n+r-f)% n6. 设有4个数据元素a1、a2、a3和a4,对他们分别进行栈操作或队操作。

数据结构(第二版) 模拟试题自测卷AB卷带答案1

数据结构(第二版) 模拟试题自测卷AB卷带答案1
A. a B. b C.NULL D.x
5.在一个单链表HL中,若要删除由指针q所指向结点的后继结点,则执行________。
A.p=q->next; p->next=q->next;free(p);
B.p=q->next; q->next=p; free(p);
C.p=q->next; q->next=p->next; free(p);
试卷一
一、选择题(本题共30分,每题2分)
1.计算机识别、存储和加工处理的对象被统称为________。
A.数据B.数据元素C.数据结构D.数据类型
2.已知一栈的进栈序列为:1234,则下列哪个序列为不可能的出栈序列________。
A.1234B.4321 C.2143D.4123
3.链表不具有的特点是________。
(1)直接插入排序
(2)基数排序
5.对于下面所示的连通图,写出由Prim算法生成的最小生成树。(5分)
6.将下面的树转化为一棵二叉树,并写出对二叉树进行层序遍历的序列。(7分)
四、算法题(本题共20分)
1.完成中序遍历二叉树。
Typedef struct node
{
Char data;
Struct node *lchild;
3.数据的逻辑结构包括集合、________、________和图状结构四种类型。
4.图的两种遍历方式为:广度优先遍历和_______________。
5.线性表的链式存储结构中的结点包含________域和________域。
6.向一棵二叉搜索树中插入一个元素时,若元素的值小于根结点的值,则应把它插入到根结点的_______上。

数据结构 学习自测题-2

数据结构  学习自测题-2

学习自测及答案1. 已知一维数组A采用顺序存储结构,每个元素占用4个存储单元,第9个元素的地址为144,则第一个元素的地址是()。

A 108B 180C 176D 1122.在长度为n的线性表中查找值为x的数据元素的时间复杂度为:()。

A O(0)B O(1)C O(n)D O(n2)3.在一个长度为n的顺序表的第i(1≤i≤n+1)个元素之前插入一个元素,需向后移动()个元素,删除第i(1≤i≤n)个元素时,需向前移动()个元素。

4.在单链表中,除了头结点以外,任一结点的存储位置由()指示。

5.当线性表采用顺序存储结构时,其主要特点是()。

6.在双链表中,每个结点设置了两个指针域,其中一个指向()结点,另一个指向()结点。

7.设A是一个线性表(a1, a2, …, an),采用顺序存储结构,则在等概率的前提下,平均每插入一个元素需要移动的元素个数为多少?若元素插在ai与ai+1之间(1≤i≤n)的概率为,则平均每插入一个元素所要移动的元素个数又是多少?8.线性表存放在整型数组A[arrsize]的前elenum 个单元中,且递增有序。

编写算法,将元素x插入到线性表的适当位置上,以保持线性表的有序性,并且分析算法的时间复杂度。

9. 已知单链表中各结点的元素值为整型且递增有序,设计算法删除链表中所有大于mink且小于maxk的所有元素,并释放被删结点的存储空间。

10.设单循环链表L1,对其遍历的结果是:x1, x2, x3,…, xn-1, xn。

请将该循环链表拆成两个单循环链表L1和L2,使得L1中含有原L1表中序号为奇数的结点且遍历结果为:x1, x3,… ;L2中含有原L1表中序号为偶数的结点且遍历结果为:… , x4, x2。

数据结构试卷试题及答案

数据结构试卷试题及答案

数据结构试卷试题及答案一、选择题(每题4分,共40分)1. 下列关于线性表的说法错误的是:A. 线性表可以是空表B. 线性表中的元素必须具有相同的数据类型C. 线性表中元素的顺序可以改变D. 线性表中的元素必须是整数答案:D2. 在单链表中,要删除第i个元素,需要:A. 找到第i个元素,然后删除B. 找到第i-1个元素,然后删除第i个元素C. 找到第i+1个元素,然后删除第i个元素D. 找到第i个元素,然后修改指针答案:B3. 下列关于栈的说法正确的是:A. 栈是一种先进先出的数据结构B. 栈是一种后进先出的数据结构C. 栈中元素只能在一端插入和删除D. 栈中元素只能在两端插入和删除答案:B4. 下列关于队列的说法错误的是:A. 队列是一种先进先出的数据结构B. 队列是一种后进先出的数据结构C. 队列中元素只能在队尾插入D. 队列中元素只能在队头删除答案:B5. 二分查找算法的时间复杂度为:A. O(1)B. O(n)C. O(logn)D. O(nlogn)答案:C6. 在二叉树中,度为0的节点数n0与度为2的节点数n2的关系是:A. n0 = n2 + 1B. n0 = n2 - 1C. n0 = n2D. n0 = n2 + 2答案:A7. 下列关于图的说法错误的是:A. 图是一种复杂的数据结构B. 图中顶点之间的关系可以是多对多的C. 图中顶点之间的关系可以是单向的D. 图中顶点之间的关系不能是双向的答案:D8. 下列排序算法中,时间复杂度最低的是:A. 冒泡排序B. 选择排序C. 快速排序D. 堆排序答案:D9. 下列关于哈希表的说法正确的是:A. 哈希表的查找时间复杂度为O(n)B. 哈希表的插入时间复杂度为O(n)C. 哈希表的查找时间复杂度为O(1)D. 哈希表的插入时间复杂度为O(1)答案:C10. 下列关于动态规划的说法错误的是:A. 动态规划是一种解决组合问题的方法B. 动态规划可以用于求解最优化问题C. 动态规划的基本思想是递归D. 动态规划的基本思想是记忆化搜索答案:C二、填空题(每题5分,共30分)1. 在单链表中,插入操作的时间复杂度是______。

十套数据结构试题及答案

十套数据结构试题及答案

数据构造试卷〔一〕一、单项选择题〔每题 2 分,共20分〕1.栈和队列的共同特点是( a )。

A.只允许在端点处插入和删除元素B.都是先进后出C.都是先进先出D.没有共同点2.用链接方式存储的队列,在进展插入运算时( d ).A. 仅修改头指针B. 头、尾指针都要修改C. 仅修改尾指针D.头、尾指针可能都要修改3.以下数据构造中哪一个是非线性构造?( d )A. 队列B. 栈C. 线性表D. 二叉树4.设有一个二维数组A[m][n],假设A[0][0]存放位置在644(10),A[2][2]存放位置在676(10),每个元素占一个空间,问A[3][3](10)存放在什么位置?脚注(10)表示用10进制表示。

cA.688 B.678 C.692 D.6965.树最适合用来表示( c )。

A.有序数据元素B.无序数据元素C.元素之间具有分支层次关系的数据D.元素之间无联系的数据6.二叉树的第k层的结点数最多为( d ).A.2k-1 B.2K+1 C.2K-1 D. 2k-17.假设有18个元素的有序表存放在一维数组A[19]中,第一个元素放A[1]中,现进展二分查找,那么查找A[3]的比拟序列的下标依次为( c d)A. 1,2,3B. 9,5,2,3C. 9,5,3D. 9,4,2,38.对n个记录的文件进展快速排序,所需要的辅助存储空间大致为 cA. O〔1〕B. O〔n〕C. O〔1og2n〕D. O〔n2〕9.对于线性表〔7,34,55,25,64,46,20,10〕进展散列存储时,假设选用H〔K〕=K %9作为散列函数,那么散列地址为1的元素有〔 c d〕个,A.1 B.2 C.3 D.410.设有6个结点的无向图,该图至少应有( a )条边才能确保是一个连通图。

二、填空题〔每空1分,共26分〕1.通常从四个方面评价算法的质量:____时间正确性_____、____占用内存_易读性____、____复杂度__强壮性___和_____准确度_ 高效率___。

数据结构自测试题及答案

数据结构自测试题及答案

数据结构自测题1一、单项选择题1.线性表若采用链表存储结构时,要求内存中可用存储单元的地址( D ).A.必须是连续的B.部分地址必须是连续的C.一定是不连续的D.连续不连续都可以2。

在单链表中,增加头结点的目的是为了( C )A.使单链表至少有一个结点B.表示表结点中首结点的位置C.方便运算的实现D.说明单链表是线性表的链式存储实现3。

设栈S和队列Q的初始状态为空,元素e1、e2、e3、e4、e5和e6依次通过栈S,一个元素出栈后即进入队列Q,若6个元素出队的顺序是e2、e4、e3、e6、e5、e1,则栈S的容量至少应是( B )A.2 B.3 C.4 D.54。

树结构中,前驱结点与后继结点之间存在( B )关系。

A.一对一B.一对多C.多对一D.多对多5.堆栈的特性描述是( B ).A.FIFO B.FILO C.FIFO和FILO D.FIFO或FILO6.队列的特性描述是( A )。

A.FIFO B.FILO C.FIFO和FILO D.FIFO或FILO 7。

下列数据结构中,是非线性结构的是( A )A.树B.堆栈C.队列D.循环队列8.设某个初始为空的容纳int型数据的堆栈进行了如下操作(每一步均未发生溢出):push (1)、push(3)、pop()、push(6)、push(1)、pop()、push(3)、push(8) 后,该堆栈中从栈顶到栈底的元素依次为( D )A.8 1 8 3 B.1 3 1 8 C.1 6 3 8 D.8 3 6 1二、判断题1.二叉树可以为空树。

(√)2.顺序表和链表都是线性表.(√)3。

线性表的长度是线性表占用的存储空间的大小.(√)4。

队列只能采用链式存储方式.(×)5。

由二叉树的先序序列和中序序列能唯一确定一棵二叉树。

(√)6。

存在有偶数个结点的满二叉树。

(×)三、填空题1。

数据结构是数据在计算机内的组成形式和相互关系。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

7.3.习题自测第一章数据结构绪论1. 写出算法的特征2. 写出for (i=n; i>0; i/=2); 的时间复杂度第二章线性表1. 循环队列的队首和队尾下标分别为f, r, 最大长度为n, 写出判断队满和队空的条件2. 向量A中已有n个元素,写出删除其第i个位置元素的算法3. 在顺序表中插入和删除一个结点需平均移动多少个结点?具体的移动次数取决于哪两个因素?4. 设线性表的n个结点定义为(a0,a1,…,an-1),重写顺序表上实现的插入和删除算法:InsertList和DeleteList。

5. 设A和B是两个单链表,其表中元素递增有序。

试写一算法将A和B归并成一个按元素值递增有序的单链表C。

第三章栈和队列1. 设将整数1,2,3,4依次进栈,但只要出栈时栈非空,则可将出栈操作按任何次序夹入其中,请回答下述问题:⑴. 若入、出栈次序为Push(1),Pop(),Push(2),Push(3),Pop(),Pop(),Push(4),Pop(),则出栈的数字序列为何(这里Push(i)表示进栈,Pop()表示出栈)?⑵. 能否得到出栈序列1423和1432?并说明为什么不能得到或者如何得到。

⑶. 请分析1,2,3,4的24种排列中,哪些序列是可以通过相应的入出栈操作得到的。

第四章串1. 现有模式abaabc,写出每个字母的next值。

2. 假设主串abcabadabaabc,模式串如上,说明kmp算法的匹配过程。

3. 回文是指正读和反读均相同的字符序列,如"abba"和"abdba"均是回文,但"good"不是回文。

试写一个算法判定给定的字符向量是否为回文。

(提示:将一半字符入栈)。

第六章树与二叉树1. 若二叉树的先序和中序遍历结果分别是a, b, d, e, c, f, g, h和d, e, b, a, f, c,h, g, 求其后序遍历的结果2. 二叉树的中序和后序遍历结果分别为4, 5, 2, 1, 6, 3, 8, 7和5, 4, 2, 6, 8, 7, 3,1, 求其先序遍历的结果3. 树用孩子兄弟链接法存储,结点结构为:struct Node {char data, struct Node *child, *brother;}写C函数void PreOrder(struct Node *root), 先根遍历树。

Root是指向树根的指针。

4、假设对一段电文“abcdcbcacab”进行Huffman编码。

画出对应的Huffman树,并写出每个字符的Huffman编码。

5. a, b, c, d, f的使用频度分别是17%, 15%, 19%, 22%, 27%, 构造Huffman树,写出它们的Huffman编码。

第七章图1. 无向网N={V,E},V={0,1,2,3,4,5},E={(0,1,10),(0,4,19),(0,5,21),(1,2,5),(1,3,6),(1,5,11),(2,3,6),(3,4,18),(3,5,14),(4,5,33)},E中每个元组的第三个元素表示权。

⑴. 画出该网;⑵. 写出该网的邻接矩阵;⑶. 用Prim算法求最小生成树,依次写出树的生长过程;⑷. 用Kruskal算法求最小生成树,依次写出树的生长过程。

2.有向网N={V,E},V={0,1,2,3,4},E={<0,1,1>,<0,3,3>,<0,4,10>,<1,2,5>,<2,4,1>,<3,2,2>,<3,4,6>},E中每个元组的第三个元素表示权。

⑴. 画出该网。

⑵. 用Dijkstra算法求最短路径,写出顶点0到其它各顶点的最短路径长度、路径及产生过程。

⑶. 求关键路径,写出计算过程。

3. 某图的表示意如下,按拓扑排序算法,写出电脑拔出的拓扑排序结果0: ->5->2->1^1: ->4->3->2^2: ->3^3: ->4^4: ^5: ->4^4. 写C函数int OutDegree(int Adj[][N], int vi), 返回有向图顶点vi的出度。

Adj, N分别是图的邻接矩阵和顶点数。

5. 按顺序输入顶点对:(1,2),(1,6),(2,6),(1,4),(6,4),(1,3),(3,4),(6,5),(4,5),(1,5),(3,5),根据建立无向图的邻接表算法CreateALGraph画出相应的邻接表。

并写出在该邻接表上,从顶点4开始搜索所得的深度优先遍历序列和广度优先遍历序列。

第九章查找1. 往一棵空的AVL树中依次插入关键码2, 1, 3, 5, 8, 4, 7, 6, 分别画出每个关键码插入完成后的AVL树。

2. 画出在初始为空的AVL树中依次插入30, 45, 50, 46, 55, 49, 40时该树的生长全过程,并在有“旋转”时说出“旋转”的类型。

3. 假设关键字输入顺序为80, 20, 10, 8, 27, 32, 68, 95, 87,63, 46,散列函数采用除留余数法,其表达式为:H(Key)=Key%13。

⑴. 用拉链法解决冲突,画出插入所有关键字后的链表结构(假设链表头插入)⑵. 计算该表查找成功的平均查找长度。

第十章内部排序1. 分别用直接插入、希尔(第一次增量为3)、快速排序、归并排序、堆排序算法对整数序列3, 17,12, 8, 70,89, 75, 65, 77,9 进行升序排序,写出每一趟的排序结果。

作业汇总及参考答一、写函数void DelData(int a[], int N),删除有序表a中多余的相同元素。

其中N为元素个数[2007-09-18]。

int a[N];void DelData(int a[], int N)int i, j;for (i=0, j=0; j<N; i++, j++) {if (i < j) {a[i] = a[j];}while (a[i] == a[j+1]) j++;}a[i] = a[j];}二、现有模式串ababaabbab,求其next值。

[请写出每个next值的求取过程] [2007-09-27] 解:求next[j]值的算法⑴、j的初值为1, next[1]=0, i=0⑵、While(j<模式串长度) {①.若i=0或者Ti=Tj,则i++,j++,next[j]=i②.否则,i=next[i]}设 a b a b a a b b a b的次序为:1 2 3 4 5 6 7 8 9 10则next(1) = 0;next(2) = 1;next(3) = 1; 因为 P2=b != Pnext(2)=P1=anext(4) = 2; 因为 P3=a = Pnext(3)=P1=anext(5) = 3; 因为 P4=b = Pnext(4)=P2=bnext(6) = 4; 因为 P5=a = Pnext(5)=P3=anext(7) = 2; 因为 P6=a != Pnext(6)=P4=b 且!= Pnext(4)=P2=b且!=Pnext(2)=P1=anext(8) = 3; 因为 P7=b = Pnext(7)=P2=bnext(9) = 1; 因为 P8=b != Pnext(8)=P3=a 且!= Pnext(3)=P1=anext(10)= 2; 因为 P9=b = Pnext(9)=P1=a三、假设字符a, b, c, d, e的频度分别为34%, 14%, 25%, 12%, 15%, 计算Huffman编码(要求Huffman树的右子树小于左子树). [2007-10-16]解:b: 010c: 10d: 011e: 11b d四、请采用普里姆(Prim )算法(从顶点1开始)和克鲁斯卡尔(Kruskal )算法分别生成下图的最小生成树(请画出每一步的过程)。

[2007-10-25] 解:1、普里姆(Prim )算法是从指定点开始,连通分量不断增长的过程⑴ ⑵ ⑶⑷ ⑸其中:(4,5)和(4,6)两条边权值相等,因此哪个先做都可以。

2、克鲁斯卡尔(Kruskal )算法是从最小的边开始,不断将两个连通分量变成一个连通分量的过程⑶其中:(4,5),(4,6),(1,3)三条边权值都为1,因此哪个先做都可以;然后,再做(2,4), (1,4)两条边,当然这两条边权值也相等,因此,哪个先做都可以。

五.有向网N={V,E},V={0,1,2,3,4},E={<0,1,1>,<0,3,3>,<0,4,10>,<1,2,5>,<2,4,1>,<3,2,2>,<3,4,6>},E 中每个元组的第三个元素表示权。

⑴、画出该网。

⑵、用Dijkstra 算法求最短路径,写出顶点0到其它各顶点的最短路径长度、路径及产生过程。

⑶、求关键路径,写出计算过程。

[2007-11-01]解: ⑴、有向网N 如右图所示⑵、用Dijkstra 算法求最短路径过程如下12 3 4 S⑶、关键路径求解过程如下先求出拓扑排序为: 0,1,3,2,4VE[i] VL[i] 0 1 2 3 最短路径4由上表可以看出,只有弧<0,4>(即活动)的E 和L 相等(皆为0),因此,弧<0,4>是关键路径六.画出在初始为空的AVL 树中依次插入2, 1, 3, 5, 8, 4, 7, 6时该树的生长全过程,并在有“旋转”时说出“旋转”的类型。

[2007-11-13]七、假设关键字输入顺序为5,55,67,21,44,12,3,53,23,已知散列函数为:H(Key)=Key%11。

⑴、用拉链法解决冲突,画出插入所有关键字后的链表结构(假设链表头插入)。

⑵、计算该表查找成功的平均查找长度(ASL )。

[2007-11-22] 解:⑴、⑵、ASL = (1/9) X (1X6 + 2X2 + 3X1) = 13/9八、分别用直接插入排序、起泡排序、快速排序、堆排序、归并排序、链式基数排序算法对整数序列43,17,12,8,70,89,75,65,77,9进行升序排序,⑴、写出直接插入排序、起泡排序、归并排序每一趟的排序结果;⑵、写出快速排序第一趟的排序结果;⑶、写出堆排序建初始堆和输出最大两个关键字记录的排序过程;⑷、写出链式基数排序的每一趟分配和收集的结果。

[2007-12-11] 解:0 1 2 3 4 5 6 78 9 10 先右后左双旋 单向右旋1、直接插入排序43,17,12, 8,70,89,75,65,77, 9 [43],17,12, 8,70,89,75,65,77, 9 [17,43],12, 8,70,89,75,65,77, 9 [12, 17,43], 8,70,89,75,65,77, 9 [ 8, 12, 17,43],70,89,75,65,77, 9 [ 8, 12, 17,43,70],89,75,65,77, 9 [ 8, 12, 17,43,70,89],75,65,77, 9 [ 8, 12, 17,43,70,75,89],65,77, 9 [ 8, 12, 17,43,65,70,75,89],77, 9 [ 8, 12, 17,43,65,70,75,77,89], 9 [ 8, 9, 12, 17,43,65,70,75,77,89] 2、起泡排序43,17,12, 8,70,89,75,65,77, 9 17,12, 8,43,70,75,65,77, 9,[89] 12, 8,17,43,70,65,75, 9,[77,89] 8,12,17,43,65,70, 9,[75,77,89] 8,12,17,43,65, 9,[70,75,77,89] 8,12,17,43, 9,[65,70,75,77,89] 8,12,17, 9,[43,65,70,75,77,89] 8,12, 9,[17,43,65,70,75,77,89] 8, 9,[12,17,43,65,70,75,77,89] 8, [9,12,17,43,65,70,75,77,89] [8, 9,12,17,43,65,70,75,77,89] 3、归并排序43,17,12, 8,70,89,75,65,77, 9[17,43],[ 8,12],[70,89],[65,75],[ 9,77] [ 8,12,17,43],[65,70,75,89],[ 9,77] [ 8,12,17,43,65,70,75,89],[ 9,77] [ 8, 9,12,17,43,65,70,75,77,89] 4、快速排序第一趟的排序结果取pivotkey=439与pivotkey (43)交换之后,low++,且向右比较70与pivotkey (43)交换之后,high--,且向左比较pivotkey (43)放到low ,high 指向的位置快速排序第一趟结束。

相关文档
最新文档