数据结构试卷2(含答案)

合集下载

数据结构-数据结构历年考题及答案2

数据结构-数据结构历年考题及答案2

中国矿业大学2011-2012学年《数据结构》试卷(A卷)(考试时间:100分钟)一. 填空(每空2分,共40分)1. 数据结构式具有相同性质的数据元素的(1)。

2. 通常程序在调用另一个程序时,都需要使用一个(2)来保存被调用程序内分配的局部变量、形式参数的存储空间以及返回地址。

3. 有6行8列的二维数组A,每个元素用相邻的6个字节存储,存储器按字节编址,已知A的起始存储地址(基址)为1000,在行优先存储和列优先存贮情况下A[5,5]的存储地址分别为__(3)_____,_____(4)____。

4. 完全二叉树第4 个节点的父节点是第 (5) 节点,左孩子是第 (6) 个节点。

如果该二叉树有10层,则共有 (7) 个节点。

5. 请描述在循环队列Q中,队头和队尾指针分别由front和rear表示,该队列有10个存储空间,判断队空和队满的条件分别分:_____(8)________,_______(9)_________。

6. 字符串t=”child”,s=”cake”,请写出下列函数的结果:StrLength(t) =(10)__;Concat(SubString(s,3,1),SubString(t,2,2))=____(11)___。

7. 一棵二叉树为则后序序列为(12),中序序列为(13),先序序列为__(14)____。

8. 请用数据序列{53,17,12,66,58,70,87,25,56,60 }构造一棵二叉排序树_(15)_。

9.。

一个栈输入的序列式1,2,3,则可能的且以2为开头的输出序列是 (16) ,不可能的序列是____(17)____。

10. 有n个结点的无向完全图的边数分别为_______(18)_______。

11. 要从数据:2,3,4,8,9,11,13查找11,若采用折半查找法,则在(19)次比较后,才找到该数据。

12. 在直接插入排序、希尔排序、冒泡排序和快速排序中,平均情况下(20)_____最快。

《数据结构》期末考试试题及答案

《数据结构》期末考试试题及答案

《数据结构》期末考试试题及答案一、单项选择题1. 数据结构是计算机科学的基础学科之一。

下列哪个选项正确描述了数据结构的定义?A. 数据结构是一种计算机程序B. 数据结构是一种存储和组织数据的方法C. 数据结构是一种人工智能技术D. 数据结构是一种操作系统答案:B2. 链表和数组是常见的数据结构,它们之间的主要区别是:A. 数组可以存储不同类型的数据,而链表只能存储相同类型的数据B. 数组的元素在内存中是连续存储的,而链表的元素在内存中是分散存储的C. 链表可以随机访问元素,而数组只能顺序访问元素D. 链表的插入和删除操作更高效,而数组的访问操作更高效答案:B3. 在二叉树中,每个节点最多可以有多少个子节点?A. 1B. 2C. 3D. 无限多个答案:B二、填空题1. 假设有一组数据 [5, 8, 3, 2, 9],按照从小到大的顺序进行冒泡排序的过程中,经过三次交换后的结果是__2__,__3__,__5__,__8__,__9__。

2. 请完成以下代码,实现栈的入栈和出栈操作:```pythonclass Stack:def __init__(self):self.stack = []def push(self, item):self.stack.append(item)def pop(self):if not self.is_empty():return self.stack.pop()def is_empty(self):# 示例代码s = Stack()s.push(1)s.push(2)s.push(3)print(s.pop()) # 输出 3print(s.pop()) # 输出 2print(s.is_empty()) # 输出 False ```答案:```pythonclass Stack:def __init__(self):self.stack = []def push(self, item):self.stack.append(item)def pop(self):if not self.is_empty():def is_empty(self):return len(self.stack) == 0# 示例代码s = Stack()s.push(1)s.push(2)s.push(3)print(s.pop()) # 输出 3print(s.pop()) # 输出 2print(s.is_empty()) # 输出 False```三、简答题1. 请简要介绍树的基本概念及常见的树结构。

东北大学22春“计算机科学与技术”《数据结构Ⅱ》期末考试高频考点版(带答案)试卷号:5

东北大学22春“计算机科学与技术”《数据结构Ⅱ》期末考试高频考点版(带答案)试卷号:5

东北大学22春“计算机科学与技术”《数据结构Ⅱ》期末考试高频考点版(带答案)一.综合考核(共50题)1.假设一棵完全二叉树按层次遍历的顺序依次存放在数组BT[m]中,其中根结点存放在BT[0],若BT[i]中的结点有左孩子,则左孩子存放在A.BT[i/2]B.BT[2*i]C.BT[2*i-1]D.BT[2*i+1]参考答案:D2.若要在O(1)的时间复杂度上实现两个循环链表头尾相接,则应对两个循环链表各设置一个指针,分别指向()。

A.各自的头结点B.各自的尾结点C.各自的第一个元素结点D.一个表的头结点,另一个表的尾结点参考答案:B3.对长度为15的有序顺序表进行二分查找,在各记录的查找概率均相等的情况下,查找成功时所需进行的关键字比较次数的平均值为A.55/15B.51/15C.49/15D.39/15参考答案:C4.栈和队列都是A.顺序存储的线性结构D.链式存储的线性结构参考答案:C5.下列程序段 for(i=1;iA.O(n)B.O(1+n)C.O(1)D.O(0)参考答案:A6.树有先根遍历和后根遍历,树可以转化为对应的二叉树。

下面的说法正确的是A.树的后根遍历与其对应的二叉树的后根遍历相同B.树的后根遍历与其对应的二叉树的中根遍历相同C.树的先根遍历与其对应的二叉树的中根遍历相同D.以上都不对参考答案:B7.如果在排序过程中,每次均将一个待排序的记录按关键字大小加入到前面已经有序的子表中的适当位置,则该排序方法称为()。

A.插入排序B.归并排序C.冒泡排序D.堆排序参考答案:A8.当采用分快查找时,数据的组织方式为A.数据分成若干块,每块(除最后一块外)中数据个数需相同B.数据分成若干块,每块内数据有序,每块内最大(或最小)的数据组成索引块C.数据分成若干块,每块内数据有序D.数据分成若干块,每块内数据不必有序,但块间必须有序,每块内最大(或最小)的数据组成索引块9.在一个单链表中,若删除*p结点的后继结点,则执行操作()。

国家二级C语言机试数据结构与算法-试卷2-1_真题(含答案与解析)-交互

国家二级C语言机试数据结构与算法-试卷2-1_真题(含答案与解析)-交互

国家二级C语言机试(数据结构与算法)-试卷2-1(总分76, 做题时间90分钟)1. 选择题1.对长度为10的线性表进行冒泡排序,最坏情况下需要比较的次数为()。

SSS_SINGLE_SELA 9B 10C 45D 90分值: 2答案:C解析:在最坏情况下,冒泡排序的时间复杂度为n(n-1)/2,为45,答案选C。

2.下列叙述中正确的是()。

SSS_SINGLE_SELA 算法的效率只与问题的规模有关,而与数据的存储结构无关B 算法的时间复杂度是指执行算法所需要的计算工作量C 数据的逻辑结构与存储结构是一一对应的D 算法的时间复杂度与空间复杂度一定相关分值: 2答案:B解析:算法的时间复杂度是指执行算法所需要的计算工作量,与数据的存储结构有关,与算法的空间复杂度没有关系。

数据的逻辑结构与存储位置无关,即与存储结构无关,所以选择B。

3.下列叙述中正确的是()。

SSS_SINGLE_SELA 线性表链式存储结构的存储空间一般要少于顺序存储结构B 线性表链式存储结构与顺序存储结构的存储空间都是连续的C 线性表链式存储结构的存储空间可以是连续的,也可以是不连续的D 以上说法都不对分值: 2答案:C解析:在链式存储结构中,存储数据结构的存储空间可以不连续,各数据结点的存储顺序与数据元素之间的逻辑关系可以不一致,而数据元素之间的逻辑关系是由指针域来确定的,所以选择C。

4.某二叉树共有12个结点,其中叶子结点只有1个。

则该二叉树的深度为(根结点在第1层)()。

SSS_SINGLE_SELA 3B 6D 12分值: 2答案:D解析:根据二叉树的性质,叶子结点比度为2的结点个数多一个,叶子结点只有1个,那么度为2的结点为0个,可以得出共有11个度为1的结点,那么该二叉树每一层上只能有一个结点,共12层,即深度为12。

5.对长度为n的线性表作快速排序,在最坏情况下,比较次数为()。

SSS_SINGLE_SELA nB n-1C n(n-1)D n(n-1)/2分值: 2答案:D解析:在最坏情况下,快速排序需要比较n(n-1)/2次。

大数据结构考试精彩试题

大数据结构考试精彩试题

数据结构辅导试题一一、简答问题:1.四类数据结构2.线性结构与非线性结构有何差别?3.简述算法的定义与特性。

4.设有1000个无序元素,仅要求找出前10个最小元素,在下列排序方法中(归并排序、基数排序、快速排序、堆排序、插入排序)哪一种方法最好,为什么?二、判断正误:(每小题1分,共5分)正确在()内打√,否则打 。

1.()二叉排序树或是一棵空树,或是具有下列性质的二叉树:若它的左子树非空,则根结点的值大于其左孩子的值,若它的右子树非空,则根结点的值大于其右孩子的值。

2.()索引顺序表的特点是块内可无序,块间要有序。

3.()子串是主串中任意个连续字符组成的序列。

4.()线性结构只能用顺序结构存放,非线性结构只能用链表存放。

5.()快速排序的枢轴元素可以任意选定。

三、单项选择题:(每小题1分,共4分)1.栈S最多能容纳4个元素。

现有6个元素按A、B、C、D、E、F的顺序进栈, 问下列哪一个序列是可能的出栈序列?A)E、D、C、B、A、F B)B、C、E、F、A、DC)C、B、E、D、A、F D)A、D、F、E、B、C2.将一棵有100个结点的完全二叉树从根这一层开始,每一层从左到右依次对结点进行编号,根结点编号为1,则编号为49的结点的左孩子的编号为:A、98B、99C、50D、483. 对下列关键字序列用快速排序法进行排序时,速度最快的情形是:A){21、25、5、17、9、23、30} B){25、23、30、17、21、5、9}B){21、9、17、30、25、23、5} D){5、9、17、21、23、25、30}4. 设森林F中有三棵树,第一、第二和第三棵树的结点个数分别为M1、M2和M3。

与森林F对应的二叉树根结点的右子树上的结点个数是:A)M1 B)M1+M2 C)M3 D)M2+M3四、填空题:(每小题2分,共 20分)1.设一哈希表表长M为100 ,用除留余数法构造哈希函数,即H(K)=K MOD P(P<=M), 为使函数具有较好性能,P应选2.N个结点的二叉树采用二叉链表存放,共有空链域个数为3.单链表与多重链表的区别是4.在各种查找方法中,平均查找长度与结点个数无关的是5.深度为6(根层次为1)的二叉树至多有个结点。

数据结构期末考试试卷及答案

数据结构期末考试试卷及答案

数据结构期末考试试卷及答案一、选择题(每题2分,共20分)1. 下列哪一个不是线性结构的特点?A. 有且只有一个根结点B. 每个结点最多有一个前驱和一个后继C. 有多个根结点D. 有且只有一个叶子结点答案:C2. 在单链表中,头结点的作用是()A. 作为链表的起点B. 作为链表的终点C. 存储链表中的数据元素D. 作为链表中的第一个元素答案:A3. 在顺序表中,插入一个元素的时间复杂度是()A. O(1)B. O(n)C. O(logn)D. O(n^2)答案:B4. 下列哪种排序算法的平均时间复杂度最高?A. 冒泡排序B. 快速排序C. 直接插入排序D. 希尔排序答案:C5. 在二叉树中,具有3个结点的二叉树有()种不同的形态。

A. 2B. 3C. 4D. 5答案:C6. 下列哪种情况不适合使用哈希表?A. 查找速度快B. 数据量较大C. 数据量较小D. 数据元素关键字分布均匀答案:C7. 在图的遍历过程中,下列哪种遍历方法属于深度优先遍历?A. 广度优先遍历B. 深度优先遍历C. 混合遍历D. 随机遍历答案:B8. 下列哪种数据结构不适用于实现栈?A. 顺序表B. 链表C. 树D. 图答案:C9. 在双向链表中,删除一个元素的时间复杂度是()A. O(1)B. O(n)C. O(logn)D. O(n^2)答案:A10. 下列哪种情况不适合使用队列?A. 数据元素先进先出B. 数据元素后进先出C. 数据元素随机进出D. 数据元素按顺序进出答案:B二、填空题(每题2分,共20分)1. 线性表是具有______个数据元素的有限序列。

答案:n2. 在单链表中,每个结点包含两个域:数据域和______域。

答案:指针3. 在顺序表中,插入一个元素的时间复杂度是______。

答案:O(n)4. 快速排序的平均时间复杂度为______。

答案:O(nlogn)5. 哈希表中的冲突指的是______。

答案:不同的关键字对应同一存储位置6. 在图的遍历过程中,深度优先遍历算法使用的数据结构是______。

数据结构模拟试卷及参考答案

数据结构模拟试卷(一)及参考答案一.单项选择题(本大题共15小题,每小题2分,共30分)1.如果只想得到1024个元素组成的序列中的前5个最小元素,那么用( A )方法最快。

A、起泡排序B、快速排序C、堆排序D、直接选择排序2.算法分析的目的是(B)A.辨别数据结构的合理性B.评价算法的效率C.研究算法中输入与输出的关系D.鉴别算法的可读性3.在线性表的下列运算中,不改变数据元素之间结构关系的运算是(C)A.插入B.删除C.定位D.排序4.若进栈序列为1,2,3,4,5,6,且进栈和出栈可以穿插进行,则可能出现的出栈序列为(D)A.3,2,6,1,4,5 B.5,6,4,2,3,1C.1,2,5,3,4,6 D.3,4,2,1,6,55.设串sl=″DataStructureswithJava″,s2=″it″,则子串定位函数index(s1,s2)的值为(A)A.15 B.16C.17 D.186.一个顺序存储的线性表的第一个元素的存储地址是100,每个元素的长度为4,则第4个元素的存储地址是(B)。

A. 108B. 112C. 116D. 1207.从一个具有n个结点的单链表中查找其值等于x的结点,在查找成功的情况下,平均需要比较(C)个结点。

A. nB. n/2C. (n+1)/2D. (n-1)/28.在任意一棵二叉树的前序序列和后序序列中,各叶子之间的相对次序关系(D)A.不一定相同 B.互为逆序C.都不相同D.都相同9.高度为5的二叉树至多有结点数为(A)A. 63B. 32C. 24D.6410.若用邻接矩阵表示一个有向图,则其中每一列包含的″1″的个数为(B)A.图中每个顶点的出度B.图中每个顶点的入度C.图中弧的条数D.图中连通分量的数目11.图的邻接矩阵表示法适用于表示(C)A.无向图B.有向图C.稠密图D.稀疏图12.在一个单链表中,若p所指的结点不是最后一个结点,在p之后插入s所指的结点,则执行(D)。

计算机专业基础综合(数据结构)模拟试卷2

计算机专业基础综合(数据结构)模拟试卷2(总分:70.00,做题时间:90分钟)一、单项选择题(总题数:21,分数:42.00)1.单项选择题1-40小题。

下列每题给出的四个选项中,只有一个选项是最符合题目要求的。

(分数:2.00)__________________________________________________________________________________________ 解析:2.栈和队列的主要区别在于( )。

(分数:2.00)A.它们的逻辑结构不一样B.它们的存储结构不一样C.所包含的运算不一样D.插入和删除运算的限定不一样√解析:解析:栈和队列的逻辑结构都是线性的,都有顺序存储和链式存储,有可能包含的运算不一样,但不是其主要区别。

任何数据结构在针对具体问题时所包含的运算都可能不同。

所以正确答案是D。

3.若循环队列以数组Q[0..m-1]作为其存储结构,变量rear。

表示循环队列中的队尾元素的实际位置,其移动按rear=(rear+1)MOD m进行,变量length表示当前循环队列中的元素个数,则循环队列的队首元素的实际位置是( )。

(分数:2.00)A.rear-lengthB.(rear—length+m)MOD mC.(rear—length+1+m)MOD m √D.m-length解析:解析:按照循环队列的定义,因为元素移动按照rect=(rear+1)MOD m进行,则当数组Q[m—1]存放了元素之后,下一个入队的元素将存放到Q[0]中,因此队列的首元素的实际位置是(rear—length+1+m)MOD m。

4.一个以向量V[n]存储的栈,其初始栈顶指针top为n+1,则对于x,其正确的进栈操作是( )。

(分数:2.00)A.top=top+1;V[top]=xB.V[top]=x;top=top+1C.top=top-1;V[top]=x √D.V[top]=x;top=top-1解析:解析:此题考查的知识点是入栈的具体操作。

数据结构期末复习题及答案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 )。

数据结构期末考试试题(含答案)

数据结构期末考试试题(含答案)数据结构期末考试试题(含答案)第一题:多项式相加(20分)将两个多项式 P(x) 和 Q(x) 相加,结果存储在另一个多项式 S(x) 中,请写出相应的算法,并给出其时间复杂度分析。

答案:算法如下:1. 初始化一个空多项式 S(x)。

2. 分别取多项式 P(x) 和 Q(x) 的第一项,判断指数的大小关系,并将指数较小的项加入 S(x)。

3. 若指数相同,则将两项系数相加,并将结果加入 S(x)。

4. 重复步骤2和步骤3,直到两个多项式中的所有项都被处理完。

5. 返回结果多项式 S(x)。

时间复杂度分析:- 假设 P(x) 和 Q(x) 的项数分别为 m 和 n。

- 在最坏情况下,需要比较 m+n 次指数大小,并进行 m+n-1 次系数相加。

- 因此,该算法的时间复杂度为 O(m+n)。

第二题:循环队列设计(30分)请设计一个循环队列,实现入队、出队等基本操作,并给出时间复杂度分析。

答案:定义循环队列的结构体如下:```ctypedef struct {int *data; // 存储队列元素的数组int front; // 队首指针,指向队首元素的位置int rear; // 队尾指针,指向队尾的下一个位置int maxSize; // 队列的最大容量} CircularQueue;```基本操作的实现如下:1. 初始化循环队列:```cvoid initQueue(CircularQueue *queue, int maxSize) {queue->data = (int *)malloc(sizeof(int) * maxSize);queue->front = queue->rear = 0;queue->maxSize = maxSize;}```2. 入队操作:```cint enqueue(CircularQueue *queue, int value) {if ((queue->rear + 1) % queue->maxSize == queue->front) { return 0; // 队列已满,插入失败}queue->data[queue->rear] = value;queue->rear = (queue->rear + 1) % queue->maxSize;return 1; // 插入成功}```3. 出队操作:```cint dequeue(CircularQueue *queue, int *value) {if (queue->front == queue->rear) {return 0; // 队列为空,出队失败}*value = queue->data[queue->front];queue->front = (queue->front + 1) % queue->maxSize; return 1; // 出队成功}```时间复杂度分析:- 入队和出队操作的时间复杂度均为 O(1)。

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

数据结构样卷
一.判断题(15分)
1.(0 )线性表的各种基本操作在顺序存储结构上的实现均比在链式存储结构上的实现效率要低。

2.(0 )一个有向图的邻接表和逆邻接表中表结点的个数一定相等。

3.(1 )先序遍历森林和先序遍历与该森林相对应的二叉树,其结果不同。

4.(1 )不使用递归,也可实现二叉树的先序、中序和后序遍历。

5.(1 )散列法存储的基本思想是由关键字的值决定数据的存储地址。

6.(1 )采用折半查找法对有序表进行查找总是比采用顺序查找法对其进行查找要快。

7.(0 )在任何情况下,快速排序方法的时间性能总是最优的。

8. ( 0 )二维数组是其数据元素为线性表的线性表。

9.(0 )拓扑排序是一种内部排序方法。

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

二.单选题(每个选择项2分,共20分)
1. 单循环链表的主要优点是( D )。

A.不再需要头指针
B.已知某个结点的位置后,能够容易找到它的直接前趋
C.在进行插入,删除运算时,能更好地保证链表不断开
D.从表中任一结点出发都能扫描到整个链表
2. 若某线性表中最常用的操作是取第i个元素和找第i个元素的前趋元素,则采用( D )存储方式最节省时间。

A.顺序表B.单链表C.双链表D.单循环链表3. 在Hash函数H (k) = k MOD m 中,一般来讲,m应取( C )。

A.奇数B.偶数C.素数D.充分大的数4. 图的深度优先遍历算法类似于二叉树的( A ),广度优先遍历算法类似于二叉树的( D )。

A.先序遍历B.中序遍历C.后序遍历D.层次遍历
5. 对树而言,不合适的遍历方法是( D )。

A.先序遍历B.中序遍历C.后序遍历D.层次遍历
6. 若广义表A满足Head(A)==Tail(A),则A为( B )。

A. ( )
B. (( ))
C. (( ),( ))
D. (( ),( ),( ))
7. 下列二叉树中,( A )可用于实现符号的不等长高效编码。

1
A. 最优二叉树
B. B-树
C. 二叉平衡树 ••
D. 二叉排序树
8. 若进栈序列为1234,则不能得到( B )的出栈序列。

A. 1342
B. 1423
C. 1243
D. 1432
9. 循环队列用数组A[m]存放其元素值,已知其头尾指针分别是front和rear,则当前队列中的元素个数是( D )。

A. (rear – front + m) MOD m
B. rear – front + 1
C. rear – front - 1
D. rear – front
三.填空题(共20分,每空2分)
1.对任何一棵二叉树T,若其终端结点数为n0,度为2 的结点数为n2,则n0与n2的关系为 n0=n2+1 。

2. 折半插入排序是对直接插入排序算法的改进,它着眼于减少时间复杂度。

3.如果二叉树中任何一个非终端结点的值都大于它的左子树上所有结点的值而小于右子树上所有结点的值,要得到各结点值的递增序列,应按中序遍历次序排列结点,这种树称为二叉排序树。

4. 设计一个判别表达式中左、右括号是否配对出现的算法,采用数据结构最佳。

5. 具有n个顶点的无向完全图的边有1/2*n(n-1)条;具有n个顶点的有向完全图的弧有n*(n-1)条。

6. 折半查找法适用于存储结构为有序表,且按关键字排好序的线性表。

7. 栈和队列是两种特殊的线性表,栈的特点是后进先出;队列的特点是先进先出。

四.简答题(共30分,每题6分)日
1. 如图1所示的二叉树,
(1). 画出其中序线索二叉树;
(2). 画出该二叉树对应的森林。

2
2.某有向图的邻接表如图2所示,试画出该有向图,并至少给出两个拓扑排序
(图1)
3. 在某通信系统中,使用八个字母,这八个字母的使用频率依次为23,2,16,18,16,7,10,8。

试构造一棵赫夫曼树,并为这八个字母设计赫夫曼编码。

4.若要对关键字序列(25,86,23,46,68,35,72,54,24,32)由小到大进行排序,请分别写出采用下述排序方法的第一趟操作结果:
①快速排序法;
②基数排序法;
③起泡排序法。

5. 已知哈希函数为H (K) = K mod 13,关键字序列为25,37,52,43,84,99,120,15,26, 11,70, 82,采用链地址法处理冲突,试构造此哈希表。

五.算法设计题(共15分)
1.设计一个判断单链表(带头结点)L是否递增有序的算法。

(7分)
2.设有两个顺序存储的线性表A和B,A = (a1,a2,…,a m),B = (b1,b2,…,b n),现要按下列规则将B表合并到A表(假设A表空间足够大),使得:
A = (a1,b1,…,a m,b m,b m+1,…,b n) 当m<=n时;
或者 A = (a1,b1,…,a n,b n,a n+1,…,a m) 当m>n时。

请编写一个高效的合并算法。

(8分)
3。

相关文档
最新文档