数据结构试卷及答案6
数据结构试卷带答案

数据结构试卷带答案数据结构试卷(一)一、选择题(20分)1.组成数据的基本单位是( 1.C )。
(A) 数据项(B) 数据类型(C) 数据元素(D) 数据变量2.设数据结构A=(D,R),其中D={1,2,3,4},R={r},r={<1,2>,<2,3>,<3,4>,<4,1>},则数据结构A是( C )。
(A) 线性结构(B) 树型结构(C) 图型结构(D) 集合3.数组的逻辑结构不同于下列(D)的逻辑结构。
(A) 线性表(B) 栈(C) 队列(D) 树4.二叉树中第i(i≥1)层上的结点数最多有(C)个。
(A) 2i (B) 2i(C) 2i-1(D) 2i-15.设指针变量p指向单链表结点A,则删除结点A的后继结点B 需要的操作为(.A )。
(A) p->next=p->next->next (B) p=p->next(C) p=p->next->next (D) p->next=p6.设栈S和队列Q的初始状态为空,元素E1、E2、E3、E4、E5和E6依次通过栈S,一个元素出栈后即进入队列Q,若6个元素出列的顺序为E2、E4、E3、E6、E5和E1,则栈S的容量至少应该是(.C )。
(A) 6 (B) 4 (C) 3 (D) 27.将10阶对称矩阵压缩存储到一维数组A中,则数组A的长度最少为(C )。
(A) 100 (B) 40 (C) 55 (D) 808.设结点A有3个兄弟结点且结点B为结点A的双亲结点,则结点B的度数数为(8.B(A) 3 (B) 4 (C) 5 (D) 19.根据二叉树的定义可知二叉树共有(B)种不同的形态。
(A) 4 (B) 5 (C) 6 (D) 710.设有以下四种排序方法,则(B )的空间复杂度最大。
(A) 冒泡排序(B) 快速排序(C) 堆排序(D) 希尔排序二、填空题(30分)1.设顺序循环队列Q[0:m-1]的队头指针和队尾指针分别为F和R,其中队头指针F指向当前队头元素的前一个位置,队尾指针R指向当前队尾元素所在的位置,则出队列的语句为F =____________;。
数据结构考试题及答案

数据结构考试题及答案一、选择题(每题2分,共20分)1. 以下哪个不是线性数据结构?A. 数组B. 链表C. 树D. 图2. 在一个单链表中,删除一个节点的操作需要知道该节点的:A. 地址B. 值C. 索引D. 前驱节点的引用3. 栈(Stack)是一种:A. 线性表B. 树状结构C. 图结构D. 散列表4. 哈希表解决冲突最常用的方法是:A. 排序B. 链地址法C. 再散列D. 除留余数法5. 以下哪个排序算法是稳定的?A. 快速排序B. 冒泡排序C. 选择排序D. 堆排序二、简答题(每题10分,共30分)1. 简述数组和链表的区别。
2. 解释二叉搜索树的基本概念及其优势。
3. 什么是递归?请给出一个简单的递归算法例子。
三、计算题(每题25分,共50分)1. 给定一个无序数组,请写出一个时间复杂度为O(n log n)的排序算法,并说明其工作原理。
2. 描述如何使用队列来实现一个简单的文本编辑器的撤销和重做功能。
四、编程题(共30分)编写一个函数,该函数接受一个整数数组作为参数,返回数组中所有元素的和。
如果数组为空,返回0。
答案一、选择题1. 答案:C(树和图都是非线性结构)2. 答案:D(需要前驱节点的引用来删除节点)3. 答案:A(栈是一种后进先出的特殊线性表)4. 答案:B(链地址法是解决哈希冲突的常用方法)5. 答案:B(冒泡排序是稳定的排序算法)二、简答题1. 数组和链表的区别:- 数组是连续的内存空间,链表是非连续的。
- 数组的索引访问速度快,链表需要遍历。
- 数组的大小固定,链表动态可变。
2. 二叉搜索树的基本概念及其优势:- 二叉搜索树是一种特殊的二叉树,左子树上所有节点的值小于它的根节点的值,右子树上所有节点的值大于它的根节点的值。
- 优势:支持快速的查找、插入和删除操作。
3. 递归是函数自己调用自己的过程。
例如,计算n的阶乘的递归算法: ```cint factorial(int n) {if (n <= 1) return 1;return n * factorial(n - 1);}```三、计算题1. 快速排序算法:- 选择一个元素作为“基准”(pivot)。
《数据结构》期末考试试卷试题及答案

《数据结构》期末考试试卷试题及答案第一部分:选择题(每题2分,共20分)1. 下面哪个数据结构是线性结构?A. 树B. 图C. 队列D. 网络流2. 下面哪个数据结构用于实现广度优先搜索算法?A. 栈B. 队列C. 散列表D. 堆3. 下面哪个数据结构用于实现深度优先搜索算法?A. 栈B. 队列C. 散列表D. 堆4. 下面哪个数据结构用于实现快速排序算法?A. 栈B. 队列C. 散列表D. 堆5. 下面哪个数据结构用于实现优先队列?A. 栈B. 队列C. 散列表D. 堆6. 下面哪个数据结构用于实现哈希表?A. 栈B. 队列C. 散列表D. 堆7. 下面哪个数据结构用于实现最小树算法?A. 栈B. 队列C. 散列表D. 堆8. 下面哪个数据结构用于实现拓扑排序算法?A. 栈B. 队列C. 散列表D. 堆9. 下面哪个数据结构用于实现最短路径算法?A. 栈B. 队列C. 散列表D. 堆10. 下面哪个数据结构用于实现并查集算法?A. 栈B. 队列C. 散列表D. 堆第二部分:填空题(每题2分,共20分)1. 链表是一种______数据结构。
2. 二叉树的节点最多有______个子节点。
3. 堆是一种特殊的______。
4. 散列表的查找效率取决于______。
5. 图的遍历算法包括______和______。
6. 快速排序算法的平均时间复杂度为______。
7. 哈希表中的冲突解决方法有______和______。
8. 最小树算法包括______和______。
9. 最短路径算法包括______和______。
10. 并查集算法用于解决______问题。
第三部分:简答题(每题10分,共50分)1. 请简述栈和队列的区别。
2. 请简述二叉搜索树的特点。
3. 请简述哈希表的原理。
4. 请简述图的深度优先搜索算法。
5. 请简述最小树算法的原理。
第四部分:编程题(每题20分,共50分)1. 编写一个函数,实现链表的插入操作。
数据结构试题(含答案)讲解

数据结构试题一、单选题1、在数据结构的讨论中把数据结构从逻辑上分为(C )A 内部结构与外部结构B 静态结构与动态结构C 线性结构与非线性结构D 紧凑结构与非紧凑结构。
2、采用线性链表表示一个向量时,要求占用的存储空间地址(D )A 必须是连续的B 部分地址必须是连续的C 一定是不连续的D 可连续可不连续3、采用顺序搜索方法查找长度为n的顺序表时,搜索成功的平均搜索长度为( D )。
A nB n/2C (n-1)/2D (n+1)/24、在一个单链表中,若q结点是p结点的前驱结点,若在q与p之间插入结点s,则执行( D )。
A s→link = p→link;p→link = s;B p→link = s; s→link = q;C p→link = s→link;s→link = p;D q→link = s;s→link = p;5、如果想在4092个数据中只需要选择其中最小的5个,采用( C )方法最好。
A 起泡排序B 堆排序C 锦标赛排序D 快速排序6、设有两个串t和p,求p在t中首次出现的位置的运算叫做( B )。
A 求子串B 模式匹配C 串替换D 串连接7、在数组A中,每一个数组元素A[i][j]占用3个存储字,行下标i从1到8,列下标j从1到10。
所有数组元素相继存放于一个连续的存储空间中,则存放该数组至少需要的存储字数是( C )。
A 80B 100C 240D 2708、将一个递归算法改为对应的非递归算法时,通常需要使用( A )。
A 栈B 队列C 循环队列D 优先队列9、一个队列的进队列顺序是1, 2, 3, 4,则出队列顺序为( C )。
10、在循环队列中用数组A[0..m-1] 存放队列元素,其队头和队尾指针分别为front和rear,则当前队列中的元素个数是( D )。
A ( front - rear + 1) % mB ( rear - front + 1) % mC ( front - rear + m) % mD ( rear - front + m) % m11、一个数组元素a[i]与( A )的表示等价。
数据结构的试题及答案

数据结构的试题及答案一、选择题1. 在数据结构中,线性表的顺序存储方式被称为:A. 栈B. 队列C. 链表D. 数组答案:D2. 以下哪种数据结构是动态数据结构?A. 数组B. 链表C. 栈D. 队列答案:B3. 树的度是树内所有节点的度的最大值,树的深度是树的最长路径上的节点数。
以下哪个选项正确描述了树的度和深度?A. 度是节点的最大值,深度是路径上节点数B. 度是路径上节点数,深度是节点的最大值C. 度是节点的最大值,深度是节点的最大值D. 度是路径上节点数,深度是路径上节点数答案:A二、简答题1. 请简述链表和数组的区别。
答案:链表和数组是两种不同的数据存储方式。
数组是连续的内存空间,可以通过索引快速访问元素,但插入和删除操作可能需要移动大量元素。
链表由一系列节点组成,每个节点包含数据部分和指向下一个节点的指针,链表的插入和删除操作不需要移动其他元素,但访问特定元素需要从头开始遍历。
2. 什么是二叉搜索树?它有哪些特点?答案:二叉搜索树(BST)是一种特殊的二叉树,其中每个节点的值都大于或等于其左子树中的任何节点的值,并且小于或等于其右子树中的任何节点的值。
BST的主要特点是它支持快速的查找、插入和删除操作,时间复杂度为O(log n)。
三、计算题1. 给定一个链表,编写一个算法来删除链表中的重复元素。
答案:以下是删除链表中重复元素的算法步骤:- 遍历链表,使用一个哈希表来记录已经遇到的元素。
- 当遍历到一个新元素时,检查它是否已经在哈希表中。
- 如果已经存在,删除当前节点,并继续遍历。
- 如果不存在,将元素添加到哈希表中,并继续遍历。
- 完成遍历后,链表中的重复元素将被删除。
2. 假设有一个二叉搜索树,编写一个算法来找到树中第k小的元素。
答案:以下是找到二叉搜索树中第k小元素的算法步骤:- 从根节点开始,使用中序遍历(左-根-右)。
- 遍历过程中,记录访问的节点数量。
- 当访问到第k个节点时,该节点即为所求的第k小的元素。
数据结构模拟试题6

数据结构模拟试题(六)本试卷分两部分,第一部分为选择题,第二部分为非选择题;选择题20分,非选择题80分,满分100分。
考试时间150分钟。
第一部分选择题一、单项选择题(本大题共20小题,每小题1分,共20分)在每小题列出的四个选项中只有一个选项是符合题目要来的,请将正确选项前的字母旗在题后的括号内。
1.每一个存储节点不仅含有一个数据元素,还包含一组指针,该存储方式是【】A.顺序存储B.链式存储C.索引存储D.散列存储2.下列算法的时间复杂度是【】for(i= 0; i< n; i++)c[i][j]=i+j;A.O(1) B.O(n)C.O(log2n) D.O(n2)3.线性表若采用链式存储结构时,要求内存中可用存储单元的地址【】A.必须是连续的B.部分地址必须是连续的C.一定是不连续的D.连续或不连续都可以4.在有n个节点的顺序表中做插入、删除运算,需平均移动节点的数目为【】A.n B.n/2C.(n-l)/2 D.(n+l)/25.在一个链队中,假设f和r分别为队首和队尾指针,则插入s所指节点的运算时【】A. f->next=s;f=- S;B. f->next=s;r=- S;C. S->next=r;r=- S;D. S->next=f;f=- S;6.一个栈的入栈序列是1,2,3,4,则栈的不可能的输出序列是: 【】A. 3, 4, 2, l B. 3, 2, 4, lC. l, 2, 3, 4 D. 4, 3, 1, 27.设 s3=”IAM”,s4=”A TEACHER”,则 strcmp(s3,s4)=【】A. "I AM " B. "I AM A TEACHER"C. "I AMA TEACHER" D. "A TEACHER"8.设s3=”IAM”, s4=”A TEACHER”,则strcmp(s3,s4)=【】A.0 B.小于0C.大于0 D.不确定9.数组与一般线性表的区别主要在【】A.存储方面B.元素类型一致C.逻辑结构方面D.不能进行插入、删除运算10.二维数组A[4][4],数组的元素起始地址loc[0][0]=1000,元素长度为2,则loc[2][2]]为【】A.l000 B.l0l0C.l008 D.l02011.设T是一棵树,T1是对应于T的二叉树,则T的后根次序遍历和T1的次序遍历相同【】A.先根 B.中根C.后根 D.都不同12.对于一棵满二叉树,m个树叶,n个节点,深度为h,则【】A.n=h+m B.h+m=2nC.m=h-1 D.n=2h-l13.将一棵有100个节点的完全二叉树从上到下,从左到右依次对节点进行编号,根节点的编号为1,则编号为49的节点的左孩子编号为【】A.99 B.98C.50 D.4814.有6个节点的无向图至少有条过才能确保是一个连通图【】A.5 B.6C.7 D.815.若一组记录的排序码为(46,79,56.38.40、84),则利用堆排序的方法建立的初始堆为【】A.79,46,56,38,40,84 B. 84,79,56,38,40,46C.84,79,56,46,40,38 D. 84,56,79,40,46,3816.用某种排序方法对线性表(25,8421,47,15,27,68,35,20)进行排序时,元素序列的变化情况如下:【】(l) 25,84,21,47,15,27,68,35,20(2) 20,l5,2l,25,47,27,68,35,84(3) l5,20,2l,25,35,27,47,68,84(4) l5,20,2l,25,27,35,47,68,84则采用的排序方法【】是平均长度为4。
数据结构试题和答案

数据结构试题和答案一、单项选择题1. 下列关于数据结构的定义,错误的是:A. 数据结构是指数据元素之间的关系。
B. 数据结构是指数据的逻辑结构和存储结构。
C. 数据结构是计算机存储、组织数据的方法。
D. 数据结构是指算法和程序设计的方法。
答案:D2. 在栈中,允许进行的操作是:A. 进栈(push)和出栈(pop)B. 进栈(push)和查找(search)C. 进栈(push)和修改(modify)D. 进栈(push)和删除(delete)答案:A3. 以下哪种数据结构不适合用于存储图的边信息?A. 邻接矩阵B. 邻接表C. 十字链表D. 哈希表答案:D二、填空题1. 树的度为2的节点称为________。
答案:二叉树2. 在链表中,存储数据元素的节点由数据域和________组成。
答案:指针域三、简答题1. 请解释什么是数据结构。
答案:数据结构是计算机中组织和存储数据的方法和技术,它涉及到数据的逻辑结构和物理存储结构,能够有效地组织和管理数据,提高数据的检索和操作效率。
2. 请简要描述栈和队列的特点和应用场景。
答案:栈是一种遵循先进后出(Last-In-First-Out,LIFO)原则的数据结构,适用于需要后进先出操作的场景,如函数的调用过程、表达式求值等。
队列是一种遵循先进先出(First-In-First-Out,FIFO)原则的数据结构,适用于需要先进先出操作的场景,如任务调度、消息队列等。
四、编程题请使用C语言编写一个实现栈的基本操作的程序,包括进栈和出栈的功能。
```c#include <stdio.h>#include <stdlib.h>#define MAX_SIZE 100typedef struct Stack {int data[MAX_SIZE];int top;} Stack;void init(Stack *s) {s->top = -1;}int isEmpty(Stack *s) {return s->top == -1;}int isFull(Stack *s) {return s->top == MAX_SIZE - 1;}void push(Stack *s, int value) { if (isFull(s)) {printf("Stack is full.\n"); return;}s->data[++s->top] = value; }int pop(Stack *s) {if (isEmpty(s)) {printf("Stack is empty.\n"); return -1;}return s->data[s->top--];}int main() {Stack stack;init(&stack);push(&stack, 1);push(&stack, 2);push(&stack, 3);printf("%d\n", pop(&stack)); // 输出3push(&stack, 4);printf("%d\n", pop(&stack)); // 输出4printf("%d\n", pop(&stack)); // 输出2printf("%d\n", pop(&stack)); // 输出1return 0;}```以上是一份简单的栈实现的代码,通过调用push函数进行进栈操作,调用pop函数进行出栈操作。
数据结构期末复习题及答案6

数据结构期末复习题及答案6数据结构期末考试试题及答案期末样卷参考答案⼀.是⾮题(每题1分共10分)1. 线性表的链式存储结构优于顺序存储结构。
F2. 栈和队列也是线性表。
如果需要,可对它们中的任⼀元素进⾏操作。
F3.字符串是数据对象特定的线性表。
T4.在单链表P指针所指结点之后插⼊S结点的操作是:P->next= S ; S-> next = P->next; F5.⼀个⽆向图的连通分量是其极⼤的连通⼦图。
T 6.邻接表可以表⽰有向图,也可以表⽰⽆向图。
T 7.假设B是⼀棵树,B′是对应的⼆叉树。
则B的后根遍历相当于B′的中序遍历。
T8.通常,⼆叉树的第i层上有2i-1个结点。
F9.对于⼀棵m阶的B-树,树中每个结点⾄多有m 个关键字。
除根之外的所有⾮终端结点⾄少有ém/2ù个关键字。
F10.对于任何待排序序列来说,快速排序均快于起泡排序。
F⼆.选择题(每题2分共28分)1.在下列排序⽅法中,(c )⽅法平均时间复杂度为0(nlogn),最坏情况下时间复杂度为0(n2);(d )⽅法所有情况下时间复杂度均为0(nlogn)。
a. 插⼊排序b. 希尔排序c. 快速排序d. 堆排序2. 在有n个结点的⼆叉树的⼆叉链表表⽰中,空指针数为( b )。
a.不定b.n+1c.nd.n-13. 下列⼆叉树中,(a )可⽤于实现符号不等长⾼效编码。
a.最优⼆叉树b.次优查找树c.⼆叉平衡树d.⼆叉排序树4. 下列查找⽅法中,(a )适⽤于查找有序单链表。
a.顺序查找b.⼆分查找c.分块查找d.哈希查找5. 在顺序表查找中,为避免查找过程中每⼀步都检测整个表是否查找完毕,可采⽤( a )⽅法。
a.设置监视哨b.链表存贮c.⼆分查找d.快速查找6. 在下列数据结构中,(c )具有先进先出特性,(b )具有先进后出特性。
a.线性表b.栈c.队列d.⼴义表7.具有m个结点的⼆叉排序树,其最⼤深度为(f ),最⼩深度为( b )。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
………………………………………装……………………………订……………………………线………………………………………
五、将如下图所示的无向图给出其存储结构的邻接链表表示(注:这里顶点的邻 将如下图所示的无向图给出其存储结构的邻接链表表示( 接点按升序排列) 然后分别写出对其邻接表 ,然后分别写出对其邻接表从顶点 接点按升序排列) 然后分别写出对其邻接表从顶点 1 开始进行深度优先遍历序列 , 和广度优先遍历序列的结果。 求出深度优先序列和广度优先 和广度优先遍历序列的结果。 画出邻接链表 4 分,求出深度优先序列和广度优先 ( 序列各 3 分,共 10 分)
在堆排序和快速排序中,若初始记录接近正序或反序, 7.在堆排序和快速排序中,若初始记录接近正序或反序,则选用 若初始记录基本无序, 若初始记录基本无序,则最好选用 。
;
错打“ ,并说明理由。 三、判断题:对打“√” ;错打“×” 并说明理由。 (每小题 1 分,共 10 分) 判断题:对打“
1. 顺序存储结构的主要缺点是不利于插入或删除操作。( 顺序存储结构的主要缺点是不利于插入或删除操作。 2. 线性表的长度是线性表所占用的存储空间的大小 ( 线性表的长度是线性表所占用的存储空间的大小。(
姓名
学号
)
3. 队列是一种插入与删除操作分别在表的两端进行的线性表,是一种先进后出型 队列是一种插入与删除操作分别在表的两端进行的线性表,
结构。 ( 结构。
)
班级
4. 完全二叉树中,若一个结点没有左孩子,则它必是树叶。( 完全二叉树中,若一个结点没有左孩子,则它必是树叶。
)
5. 哈夫曼树是带权路径长度最短的树,路径上权值较大的结点离根较近。( 哈夫曼树是带权路径长度最短的树,路径上权值较大的结点离根较近。
A卷
‘ababaaababaa ababaa’ next 的函数 8.串 ‘ababaaababaa’ 的 next 的函数值为( ) 。 A.012345678999 B.012121111212 . . C.011234223456 D.0123012322345 . . 9.若一棵二叉树具有 10 个度为 2 的结点,5 个度为 1 的结点,则度为 0 的结点个 的结点, 的结点, 数是( 数是( ) A.9 B.11 C.15 D.不确定 . . . . 10. 的二叉树最大的结点数为( 10.高度为 k 的二叉树最大的结点数为( ) 。 k k-1 k B.2 C.2 -1 A.2 . . .
8.在用堆排序算法排序时,如果要使排序后的记录序列按关键字非递减有序排列, 在用堆排序算法排序时,如果要使排序后的记录序列按关键字非递减有序排列, __四种 则需要采用“大根堆” 四种。 ,_ __,_ __,_ __四种。 则需要采用“大根堆” ( 。 ) )
的拓扑序列唯一, 为顶点数)。 )。( 2. 顺序存储结构是通过__ 顺序存储结构是通过__ _____表示元素之间的关系的; 链式存储结 9.图 G 的拓扑序列唯一,则其弧数必为 n-1(其中 n 为顶点数)。( _____表示元素之间的关系的; 表示元素之间的关系的 构是通过____ ____表示元素之间的关系的 表示元素之间的关系的。 构是通过____ ____表示元素之间的关系的。 10.散列表的装填因子α越小,发生冲突的可能性就越小。 10.散列表的装填因子α越小,发生冲突的可能性就越小。( 个结点的二叉树,采用二叉链表存储,共有______个空指针域。 ______个空指针域 3.具有 n 个结点的二叉树,采用二叉链表存储,共有______个空指针域。 则编号最大的非终端结点的编号为___ 4.完全二叉树中,结点个数为 n,则编号最大的非终端结点的编号为___ 完全二叉树中, ___。 ___。 )
)
6. 折半查找与二叉排序树的时间性能有时不相同。 折半查找与二叉排序树的时间性能有时不相同。 查找与二叉排序树的时间性能有时不相同 (
)
7. 十字链表是无向图的一种存储结构 , 而邻接多重表是有向图的一种存储结构 。 十字链表是无向图的一种存储结构,而邻接多重表是有向图的一种存储结构。
(
) 本试卷共 3 页,此页为 A 卷第 2 页
姓名
A. i =1
∑ A[i, j ]
n
B.
∑ A[i, j]
j=1
n
C. i =1
∑ A[ j, i]
n
D. i =1
∑ A[i, j ]
n
+
∑ A[ j, i]
j=1
n
13. L=( a,b,c),则 的长度和深度分别为( (a,b,c ) 13. 设广义表 L=( a,b,c),则 L 的长度和深度分别为( ( A. 1 和 2 B. 1 和 3 C. 1 和 1
中
………………………………………装……………………………订……………………………线………………………………………
原
工
学 院
重修标识
2006~2007 学年 第 2 学期 ~ 计算机 网络 软件 专业 数据结构 课程期末试卷
题号 一 二 三 四 五 六 七 八 九 十
7. 若已知一个栈的入栈序列是 1, 2, 3, …, n,其输出序列为 p1, p2,p3,…,pn, , , , , ) 若 p1=n,则 pi 为 ( , A.i B.n=i C.n-i+1 D.不确定 . . . .
本试卷共
3 页,此页为
A
卷第 1 页
(注:参加重修考试者请在重修标识框内打钩)
………………………………………装……………………………订……………………………线………………………………………
二、填空 (每空 1 分,共 16 分) 个元素,可以构造出的逻辑结构有_ 1. 3
班级
14. 排好序的线性表,当查找不成功时, 14.折半查找法查找一个长为 10 的,排好序的线性表,当查找不成功时,最多需要 比较多少次( 比较多少次( ) A 5 B2 C 4 D1 15.一组记录的关键码为(46,79,56,38,40,84) 则利用快速排序的方法, ,则利用快速排序的方法 15.一组记录的关键码为(46,79,56,38,40,84) 则利用快速排序的方法, , 以第一个记录为基准得到的一次划分结果为( 以第一个记录为基准得到的一次划分结果为( ) 。 A.(40,38,46,56,79,84) . B. (40,38,46,79,56,84) C.(38,40,46,56,79,84) D. (40,38,46,84,56,79) .
)
四、算法设计题: 共 10 分) 算法设计题: 设计题 ( 是一个非空队列, 是一个空栈。仅用如下给定的 如下给定的队列和栈的 已知 Q 是一个非空队列,S 是一个空栈。仅用如下给定的队列和栈的 ADT 函数 尽量少 工作变量, C++语言编写一个算法 语言编写一个算法, 和尽量少的工作变量,使用 C 或 C++语言编写一个算法,将队列 Q 中的所有元素逆 置。 函数有: 栈的 ADT 函数有: void MakeEmpty(Stack &S) 置空栈 bool Push(Stack &S,DataType e) 新元素 e 进栈,入栈成功返回 TRUE,否则返回 进栈, ,否则返回 FALSE DataType Pop(Stack &S ) 出栈,返回栈顶值 否则返回空值 出栈,返回栈顶值,否则返回空值 bool isSEmpty(Stack S) 判栈空否 若空返回 TRUE,否则返回 FALSE 判栈空否,若空返回 , 函数有: 队列的 ADT 函数有: bool EnQueue(Queue &Q, DataType e) 元素 e 进队,入队成功返回 TRUE,否则 进队, , 返回 FALSE DataType DeQueue(Queue &Q) 出队列, 出队列, 若队列非空返回队头值 返回队头值, 若队列非空返回队头值 否则返回空值 bool isQEmpty( Queue Q ) . 判队列空否。若空返回 TRUE,否则返回 FALSE 判队列空否。 ,
D.2 .
k-1
-1
学号
11. 个小村庄, 现要为他们建成能互相通信的网, 并且总的花费最少, 11.边远山区的 N 个小村庄,现要为他们建成能互相通信的网,并且总的花费最少, 这可以归结为什么问题( 这可以归结为什么问题( ) A 最短路径 B 关键路径 C 拓扑排序 D 最小生成树 个顶点的无向 无向图用邻接矩阵 表示时, 的度是( 12.当一个有 n 个顶点的无向图用邻接矩阵 A 表示时,顶点 Vi 的度是( 。 )
条边的无向图的邻接表的表示, 5. 对于一个具有 n 个顶点 e 条边的无向图的邻接表的表示,则表头向量大小为 ______,邻接表的边结点个数为______ ______。 ______,邻接表的边结点个数为______。
个结点, 个叶子结点, 6.设一棵完全二叉树具有 1000 个结点,则此完全二叉树有 个叶子结点,有 的结点, 个结点只有非空左子树, 个结点只有非空右子树。 个度为 2 的结点, 有 个结点只有非空左子树, 有 个结点只有非空右子树。
1 2 5 6 9 7 3 8 4
学号
七、设散列表的长度 m = 13;散列函数为 H (Key)=Key MOD m,给定的关键码序 13; (Key) ey 列 为 19, 14, 23, 01, 68, 20, 84, 27, 55, 11 , 试 画 出 用 线 性 探 查 法 Hi=(H(K m,i=1,2,……k(k≤ 1))解决冲突时所构造的散列表。 (Hi=(H(Key)+di)MOD m,i=1,2,……k(k≤m-1))解决冲突时所构造的散列表。 并求出在等概率的情况下,这种方法的搜索成功时的平均搜索长度。 并求出在等概率的情况下,这种方法的搜索成功时的平均搜索长度。 (构造出散列表 7 分,求出其搜索成功时的平均搜索长度 4 分,共计 11 分)