数据结构经典复习题(仅供参考)教学文稿

合集下载

数据结构复习题及答案

数据结构复习题及答案

数据结构复习题及答案一、选择题1. 在数据结构中,以下哪种数据结构允许在任何位置进行插入和删除操作?A. 栈B. 队列C. 链表D. 数组答案:C2. 以下哪个选项是二叉搜索树的特性?A. 所有左子树的节点值小于根节点值B. 所有右子树的节点值大于根节点值C. 所有左子树的节点值大于根节点值D. 所有右子树的节点值小于根节点值答案:A3. 在图的遍历中,深度优先搜索(DFS)使用的是哪种数据结构?A. 栈B. 队列C. 链表D. 数组答案:A二、填空题1. 在一个有n个节点的完全二叉树中,如果节点按层次从上到下、从左到右编号为1, 2, 3, ..., n,则第i个节点的左孩子节点的编号为____。

答案:2i2. 哈希表解决冲突的一种方法是使用链地址法,其中每个哈希表项是一个____。

答案:链表3. 在图的表示方法中,邻接矩阵适合表示____图,邻接表适合表示____图。

答案:稠密;稀疏三、简答题1. 描述什么是递归,并给出一个简单的递归算法的例子。

答案:递归是一种在算法中调用自身的方法,用于解决可以分解为相似子问题的问题。

一个简单的递归算法例子是计算阶乘:n! = n * (n-1)!,其中基本情况是0! = 1。

2. 解释什么是图的广度优先搜索(BFS)算法,并说明其在哪些情况下适用。

答案:广度优先搜索(BFS)是一种遍历或搜索树或图的算法,它从根节点开始,逐层遍历节点。

BFS适用于寻找最短路径或在层次结构中按层次顺序访问节点的情况。

四、编程题1. 给定一个单链表,请编写一个函数来反转该链表。

答案:(此处省略具体代码实现,只提供解题思路)要反转一个单链表,可以创建一个新的链表头节点,然后遍历原链表,将每个节点的next指针指向前一个节点,直到链表末尾。

最后,将新链表的头节点设置为原链表的最后一个节点的前驱节点。

数据结构复习题及参考答案

数据结构复习题及参考答案

《数据结构》课程复习资料一、填空题:1.设需要对5个不同的记录关键字进行排序,则至少需要比较________次,至多需要比较__________次。

2.设二叉排序树的高度为h,则在该树中查找关键字key最多需要比较_________次。

3.设在长度为20的有序表中进行二分查找,则比较一次查找成功的结点数有_________个,比较两次查找成功有结点数有_________个。

4.数据结构从逻辑上划分为三种基本类型:___________、__________和___________。

5.在一个具有n个顶点的无向完全图中,包含有________条边,在一个具有n个顶点的有向完全图中,包含有________条边。

6.向一棵B_树插入元素的过程中,若最终引起树根结点的分裂,则新树比原树的高度___________。

7.在堆排序的过程中,对任一分支结点进行筛运算的时间复杂度为________,整个堆排序过程的时间复杂度为________。

8.在快速排序、堆排序、归并排序中,_________排序是稳定的。

9.在有n个叶子结点的哈夫曼树中,总结点数是_______。

10.一棵树T采用二叉链表存储,如果树T中某结点为叶子结点,则在二叉链表BT中所对应的结点一定_______。

11.3.已知数组A[10][10]为对称矩阵,其中每个元素占5个单元。

现将其下三角部分按行优先次序存储在起始地址为1000的连续的内存单元中,则元素A[5,6]对应的地址是_______。

12.在有n个结点的无向图中,其边数最多为_______。

13.取出广义表A=(x,(a,b,c,d))中原子x的函数是_______。

14.对矩阵采用压缩存储是为了___ ____。

15.带头结点的双循环链表L为空表的条件是_______。

16.设线性表中元素的类型是实型,其首地址为1024,则线性表中第6个元素的存储位置是。

17.对于顺序存储的栈,因为栈的空间是有限的,在进行运算时,可能发生栈的上溢,在进行运算时,可能发生栈的下溢。

(完整word版)数据结构期末复习题

(完整word版)数据结构期末复习题

数据结构期末复习题、选择题1. 以下说法中不正确的是(D)。

A. 数据元素是数据的基本单位B. 数据项是不可分割的最小可标识单位C. 数据可由若干个数据元素构成D. 数据项可由若干个数据元素构成2. 计算机所处理的数据一般具备某种内在联系,这是指(B)。

A. 数据和数据之间存在某种关系B. 元素和元素之间存在某种关系C. 元素内部具有某种结构D. 数据项和数据项之间存在某种关系3. 在数据结构中,与所使用的计算机无关的是数据的(A)结构。

A. 逻辑B. 存储C. 逻辑和存储D. 物理4. 数据的逻辑结构可以分为(C)两类。

A. 动态结构和静态结构B. 紧凑结构和非紧凑结构C. 线性结构和非线性结构D. 内部结构和外部结构5. 数据的逻辑结构是指(A)关系的整体。

A. 数据元素之间逻辑B. 数据项之间逻辑C. 数据类型之间D. 存储结构之间6. 以下数据结构中(D)属非线性结构。

A. 栈B. 串C. 队列D. 平衡二叉树7. 以下属于逻辑结构的是(C)。

A. 顺序表B. 哈希表C. 有序表D. 单链表8. 以下不属于存储结构的是(A)。

A. 栈B. 线索二叉树C. 哈希表D. 双链表9. 在计算机中存储数据时,通常不仅要存储个数据元素的值,而且还要存储(C)A. 数据的处理方法B. 数据元素的类型C.数据元素之间的关系D.数据的存储方法10. 数据结构在计算机内存中的表示是指(A)。

A. 数据的存储结构B. 数据结构C. 数据的逻辑结构D. 数据元素之间的关系11. 在数据的存储结构中,一个结点通常存储一个(B)A. 数据项B. 数据元素C. 数据结构D. 数据类型12. 在决定选择何种类型的存储结构时,一般不多考虑(A)A. 各结点的值如何B. 结点个数的多少C. 对数据有哪些运算D. 所用编程语言实现这种结构是否方便13. 计算机中算法指的是解决某一问题的有限运算序列,它必须具备输入、输出、(B)。

数据结构复习题及答案

数据结构复习题及答案

数据结构复习题及答案数据结构复习题及答案数据结构是计算机科学中的重要基础,它涉及到存储、组织和管理数据的方法和技术。

在学习数据结构的过程中,我们经常会遇到各种复习题,通过解答这些题目可以巩固对数据结构的理解和掌握。

本文将给出一些常见的数据结构复习题及其答案,希望对读者的学习有所帮助。

一、数组1. 给定一个整数数组,如何找到数组中的最大值和最小值?答案:可以使用遍历数组的方式,依次比较每个元素与当前的最大值和最小值,更新最大值和最小值即可。

2. 给定一个整数数组和一个目标值,如何判断数组中是否存在两个数的和等于目标值?答案:可以使用两层循环遍历数组,依次判断每两个数的和是否等于目标值。

二、链表1. 如何反转一个单链表?答案:可以使用三个指针prev、curr和next,分别表示当前节点的前一个节点、当前节点和当前节点的下一个节点。

通过遍历链表,每次将当前节点的next指针指向prev节点,然后更新prev、curr和next指针,直到遍历到链表的末尾。

2. 如何判断一个链表是否有环?答案:可以使用快慢指针的方法。

定义两个指针slow和fast,初始时都指向链表的头节点。

slow指针每次移动一步,fast指针每次移动两步。

如果链表中存在环,那么两个指针最终会相遇;如果链表中不存在环,那么fast指针会先到达链表的末尾。

三、栈和队列1. 如何使用栈实现队列?答案:可以使用两个栈来实现队列。

一个栈用来存储入队的元素,另一个栈用来存储出队的元素。

当需要入队时,直接将元素压入第一个栈;当需要出队时,如果第二个栈为空,则将第一个栈中的元素依次弹出并压入第二个栈,然后从第二个栈中弹出元素;如果第二个栈不为空,则直接从第二个栈中弹出元素。

2. 如何使用队列实现栈?答案:可以使用两个队列来实现栈。

一个队列用来存储元素,另一个队列用来辅助操作。

当需要入栈时,直接将元素入队;当需要出栈时,将队列中的元素依次出队并入辅助队列,直到队列中只剩下一个元素,然后将该元素出队;然后交换两个队列的角色,使得辅助队列成为主队列,主队列成为辅助队列。

数据结构复习题(附答案)

数据结构复习题(附答案)

数据结构复习题(附答案)数据结构复习题(附答案)数据结构是计算机科学中非常重要的一门课程,其涉及到对数据的组织、存储和管理方法的研究。

在学习数据结构的过程中,我们通常需要进行大量的练习和复习以加深对各种数据结构和算法的理解。

本文将为大家提供一些数据结构的复习题,并附有详细的答案解析。

一、栈和队列1. 给定一个字符串,判断其中的括号序列是否合法。

例如,"{([])}"是合法的括号序列,而"{[)]}"则是非法的。

答案:使用栈的数据结构可以很方便地解决这个问题。

遍历字符串,遇到左括号就将其入栈,遇到右括号就判断对应的左括号是否与栈顶元素相匹配,如果匹配则将栈顶元素出栈,继续比较下一个字符。

最后,栈为空则表示括号序列合法。

2. 设计一个队列,实现队列的基本操作:入队、出队、获取队头元素和判断队列是否为空。

答案:可以使用一个数组来实现队列,使用两个指针front和rear分别指示队头和队尾的位置。

入队操作时,将元素添加到rear指向的位置,并将rear后移一位;出队操作时,将front后移一位;获取队头元素时,返回front指向的位置的元素;判断队列是否为空可以通过比较front和rear来确定。

3. 反转一个单链表。

答案:使用三个指针prev、curr和next来实现链表的反转。

初始时,将prev指向null,curr指向头节点,next指向curr的下一个节点。

然后,将curr的next指向prev,将prev指向curr,将curr指向next,再将next指向next的下一个节点。

重复这个操作,直到链表反转完成。

4. 判断一个单链表中是否存在环。

答案:使用快慢指针的方法可以判断一个单链表中是否存在环。

如果存在环,那么快指针最终会追上慢指针;如果不存在环,那么快指针最终会达到链表的末尾。

三、树和图5. 给定一个二叉树,编写一个算法来判断它是否是平衡二叉树。

答案:平衡二叉树的定义是指二叉树的每个节点的左子树和右子树的高度差不超过1。

(完整版)数据结构复习题目及答案

(完整版)数据结构复习题目及答案

(完整版)数据结构复习题目及答案数据结构 -C 语言版》第一章绪论单项选择题1.在数据结构中,数据的基本单位是 ________2.数据结构中数据元素之间的逻辑关系被称为__ ___ 。

A. 数据的存储结构B. 数据的基本操作C. 程序的算法3.在数据结构中,与所使用计算机无关的是数据的________ ___。

A. 存储结构B. 逻辑和物理结构C. 逻辑结构4.在链式存储结构中,数据之间的关系是通过 _______ ___ 体现的。

A. 数据在内存的相对位置B. 指示数据元素的指针C. 数据的存储地址D. 指针5.计算算法的时间复杂度是属于一种 ______ ___。

A. 事前统计的方法B. 事前分析估算的方法C. 事后统计的方法D. 事后分析估算的方法6.在对算法的时间复杂度进行估计的时候,下列最佳的时间复杂度是A. n 2B. nlognC. nD. logn 7.设使用某算法对 n 个元素进行处理,所需的时间是T(n)=100nlog 2n+200n+2000,则该算法的渐近时间复杂度为 _____ ___。

A. 数据项B. 数据类型C. 数据元素D. 数据变量D. 数据的逻辑结构D. 物理结构A. O(1)B. O(n)C. O(200n)D. O(nlog2n)CDCBBDD第二章线性表单项选择题1 ?链表不具有的特点是 __________ 。

A.可随机访问任一元素B.插入和删除时不需要移动元素C.不必事先估计存储空间D.所需空间与线性表的长度正比2.设顺序表的每个元素占 8个存储单元。

第1个单元的存储地址是100,则第6个元素占用的最后一个存储单元的地址为 ______________ 。

3 ?在线性链表存储结构下,插入操作算法_______________ B. p_>next = p_>n ext;D. p = p->n ext; p->n ext = p->n ext- >n ext;5 .将长度为n 的单链表接在长度为 m 的单链表之后的算法时间复杂度为 __________________ A. 0( n)B. 0(1)C. 0(m)D. 0(m+n)6 ?需要预分较大空间,插入和删除不需要移动元素的线性表,其存储结构是 ________A.单链表B.静态链表C.线性链表D.顺序存储方式ACCABB 填空题1 ?在带表头结点的单链表中,当删除某一指定结点时,必须找到该结点的 ____ 结点。

数据结构复习题.doc

数据结构复习题.doc

考试说明考试内容:一、绪论数据结构的基本概念和分类、数据结构的逻辑结构、存储结构、算法、数据结构的选择和评价二、线性表线性表的类型定义、线性表的顺序表示和实现、线性表的链式表示和实现三、栈和队列栈和队列的结构特性、两种存储结构上实现栈和队列的基本操作、栈和队列在程序设计中的应用六、树和二叉树树、二叉树的定义、性质和存储结构、二叉树的遍历和线索化、二叉树和森林转换、最优树和哈夫曼编码。

七、图图的定义和术语、图的存储结构、图的遍历、最小生成树、拓扑排序、最短路径问题。

九、内部排序插入排序、交换排序、选择排序、归并排序和基数排序的基本思想、算法特点、排序过程、时间复杂度分析及其应用。

试题类型及分值:选择题30分15题应用题40分5题算法设计题30分3题1.计算机算法指的是(1),它必须具备(2)这三个特性。

(1) A.计算方法 B. 排序方法 C. 解决问题的步骤序列 D. 调度方法(2) A.可执行性、可移植性、可扩充性 B. 可执行性、确定性、有穷性C. 确定性、有穷性、稳定性D. 易读性、稳定性、安全性答案:CB2. 下面说法错误的是()(1)算法原地工作的含义是指不需要任何额外的辅助空间(2)在相同的规模n下,复杂度O(n)的算法在时间上总是优于复杂度O(2n)的算法(3)所谓时间复杂度是指最坏情况下,估算算法执行时间的一个上界(4)同一个算法,实现语言的级别越高,执行效率就越低A.(1) B.(1),(2) C.(1),(4) D.(3)答案 C3.从逻辑上可以把数据结构分为()两大类。

A.动态结构、静态结构 B.顺序结构、链式结构C.线性结构、非线性结构 D.初等结构、构造型结构答案 C4.以下与数据的存储结构无关的术语是()。

A.循环队列 B. 链表 C. 哈希表 D. 栈答案 D5.连续存储设计时,存储单元的地址()。

A.一定连续 B.一定不连续 C.不一定连续 D.部分连续,部分不连续答案 A6.下面关于线性表的叙述中,错误的是哪一个?()A.线性表采用顺序存储,必须占用一片连续的存储单元。

数据结构复习题.docx

数据结构复习题.docx

2017〜2018学年度第2学期 《数据结构》 复习提纲、单项选择题1. __________________________________________ 在数据结构中,从逻辑上可以把数据结构分为 两类。

A •动态结构和静态结构B •紧凑结构和非紧凑结构C .线性结构和非线性结构D .内部结构和外部结构2 •链表不具有的特点是 _________ 。

A .可随机访问任一元素B .插入、删除不需要移动的元素C .不必事先估计存储空间D .所需空间与线性表长度成正比3. 若线性表最常用的运算是存取第 ___________ i 个元素及其前驱元素,则采用存储方式节省时间。

A .单链表B .双链表C .循环单链表D .顺序表4. __________________________ 算法分析的目的是 。

A .找出数据结构的合理性B .研究算法中的输入和输出关系C .分析算法的效率以求改进D .分析算法的易读性和文档性5. ________________________________________________________________________________________ 若一个栈用数组data[1..n]存储,初始栈顶指针top 为0,则以下元素X 进栈的操作正确的是 ____________________A . top++; data[top]=x;B . data[top]=x; top++;C . top--; data[top]=x;D . data[top]=x; top--; 6 .表达式a*(b+c)-d 的后缀表达式是 ______________ 。

A . abed*+-B . abc+*d-C . abc*+d-7.递归函数 f(1)=1 , f(n)=f(n-1)+n(n > 1)的递归出口是 _____________A . f(1)=1B . f(1)=0C . f(0)=0 &将递归算法转换成对应的非递归算法时,通常需要使用 A .队列B .栈C .链表9.对稀疏矩阵采用压缩存储,其缺点之一是A .无法判断矩阵有多少行、多少列B .无法根据行、列号查找某个矩阵元素C .无法根据行、列号直接计算矩阵元素的存储地址D .使矩阵元素之间的逻辑关系更加复杂10 . 一个n 阶上三角矩阵a 按行优先顺序压缩存放在一维数组b 中,则b 中的元素个数是 ___________2A . nB . nC . n(n+1)/2D . n(n +1)/2+111 .度为4 ,高度为h 的树 ____________ 。

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

数据结构经典复习题(仅供参考)一、选择题(20分)1.下面关于线性表的叙述错误的是( D )。

(A) 线性表采用顺序存储必须占用一片连续的存储空间(B) 线性表采用链式存储不必占用一片连续的存储空间(C) 线性表采用链式存储便于插入和删除操作的实现(D) 线性表采用顺序存储便于插入和删除操作的实现2.设某棵二叉树的中序遍历序列为ABCD,前序遍历序列为CABD,则后序遍历该二叉树得到序列为( A )。

(A) BADC (B) BCDA (C) CDAB (D) CBDA3.设某棵二叉树中有2000个结点,则该二叉树的最小高度为( C )。

(A) 9 (B) 10 (C) 11 (D) 124.设二叉排序树中有n个结点,则在二叉排序树的平均平均查找长度为( B )。

(A) O(1) (B) O(log2n) (C) (D) O(n2)5.设有5000个待排序的记录关键字,如果需要用最快的方法选出其中最小的10个记录关键字,则用下列( B )方法可以达到此目的。

(A) 快速排序(B) 堆排序(C) 归并排序(D) 插入排序第9小题分析:9快速排序、归并排序和插入排序必须等到整个排序结束后才能够求出最小的10个数,而堆排序只需要在初始堆的基础上再进行10次筛选即可,每次筛选的时间复杂度为O(log2n)。

6.下列四种排序中( D )的空间复杂度最大。

(A) 插入排序(B) 冒泡排序(C) 堆排序(D) 归并排序7.设一维数组中有n个数组元素,则读取第i个数组元素的平均时间复杂度为(C )。

(A) O(n) (B) O(nlog2n) (C) O(1) (D) O(n2)8.设一棵二叉树的深度为k,则该二叉树中最多有(D )个结点。

(A) 2k-1 (B) 2k(C) 2k-1(D) 2k-19.在二叉排序树中插入一个结点的时间复杂度为(B )。

(A) O(1) (B) O(n) (C) O(log2n) (D) O(n2)10.设用链表作为栈的存储结构则退栈操作( B )。

(A) 必须判别栈是否为满(B) 必须判别栈是否为空(C) 判别栈元素的类型(D) 对栈不作任何判别11.下列四种排序中(A )的空间复杂度最大。

(A) 快速排序(B) 冒泡排序(C) 希尔排序(D) 堆12.设某二叉树中度数为0的结点数为N0,度数为1的结点数为N l,度数为2的结点数为N2,则下列等式成立的是( C )。

(A) N0=N1+1 (B) N0=N l+N2(C) N0=N2+1 (D) N0=2N1+l13.设有序顺序表中有n个数据元素,则利用二分查找法查找数据元素X的最多比较次数不超过(A )。

(A) log2n+1 (B) log2n-1 (C) log2n (D) log2(n+1)14.数据的最小单位是( A )。

(A) 数据项(B) 数据类型(C) 数据元素(D) 数据变量15.设一个有序的单链表中有n个结点,现要求插入一个新结点后使得单链表仍然保持有序,则该操作的时间复杂度为( D )。

(A) O(log2n) (B) O(1) (C) O(n2) (D) O(n)16.设一棵m叉树中度数为0的结点数为N0,度数为1的结点数为N l,……,度数为m的结点数为Nm,则N0=(B )。

(A) N l+N2+……+Nm (B) l+N2+2N3+3N4+……+(m-1)Nm(C) N2+2N3+3N4+……+(m-1)Nm (D) 2N l+3N2+……+(m+1)Nm17.设输入序列是1、2、3、……、n,经过栈的作用后输出序列的第一个元素是n,则输出序列中第i个输出元素是(C )。

(A) n-i (B) n-1-i (C) n+1-i (D) 不能确定18.时间复杂度不受数据初始状态影响而恒为O(nlog2n)的是( A )。

(A) 堆排序(B) 冒泡排序(C) 希尔排序(D) 快速排序19.设二叉树的先序遍历序列和后序遍历序列正好相反,则该二叉树满足的条件是(D )。

(A) 空或只有一个结点(B) 高度等于其结点数(C) 任一结点无左孩子(D) 任一结点无右孩子20.顺序查找不论在顺序线性表中还是在链式线性表中的时间复杂度为(A )。

(A) O(n) (B) O(n2) (C) O(n1/2) (D) O(1og2n)21.二路归并排序的时间复杂度为( C )。

(A) O(n) (B) O(n2) (C) O(nlog2n) (D) O(1og2n)22. 深度为k的完全二叉树中最少有(B )个结点。

(A) 2k-1-1 (B) 2k-1(C) 2k-1+1 (D) 2k-123.设二叉排序树上有n个结点,则在二叉排序树上查找结点的平均时间复杂度为(D )。

(A) O(n) (B) O(n2) (C) O(nlog2n) (D) O(1og2n)24.( B )二叉排序树可以得到一个从小到大的有序序列。

(A) 先序遍历(B) 中序遍历(C) 后序遍历(D) 层次遍历25.设按照从上到下、从左到右的顺序从1开始对完全二叉树进行顺序编号,则编号为i结点的左孩子结点的编号为(B )。

(A) 2i+1 (B) 2i (C) i/2 (D) 2i-126.程序段s=i=0;do {i=i+1; s=s+i;}while(i<=n);的时间复杂度为(A )。

(A) O(n) (B) O(nlog2n) (C) O(n2) (D) O(n3/2)27.设指针变量top指向当前链式栈的栈顶,则删除栈顶元素的操作序列为( D )。

(A) top=top+1; (B) top=top-1;(C) top->next=top; (D) top=top->next;28.建立一个长度为n的有序单链表的时间复杂度为( C )(A) O(n) (B) O(1) (C) O(n2) (D) O(logn)229.在二叉排序树中插入一个关键字值的平均时间复杂度为( B )。

(A) O(n) (B) O(1og2n) (C) O(nlog2n) (D) O(n2)30.设一棵完全二叉树中有65个结点,则该完全二叉树的深度为( B )。

(A) 8 (B) 7 (C) 6 (D) 531.队列是一种(A )的线性表。

(A) 先进先出(B) 先进后出(C) 只能插入(D) 只能删除32.利用直接插入排序法的思想建立一个有序线性表的时间复杂度为( C )。

(A) O(n) (B) O(nlog2n) (C) O(n2) (D) O(1og2n)33.设指针变量p指向双向链表中结点A,指针变量s指向被插入的结点X,则在结点A的后面插入结点X的操作序列为(D )。

(A) p->right=s; s->left=p; p->right->left=s; s->right=p->right;(B) s->left=p;s->right=p->right;p->right=s; p->right->left=s;(C) p->right=s; p->right->left=s; s->left=p; s->right=p->right;(D) s->left=p;s->right=p->right;p->right->left=s; p->right=s;34.一个栈的进栈序列是a,b,c,d,e,则栈的不可能的输出序列是 C 。

35.A.edcba B.decba C.dceab D.AbcdeA:a,b,c,d,e进,之后依次出栈B:a,b,c,d,进,d出,e进,e,c,b,a出D:a进a出,b进b出……e进e出C:的话dce都好办,之后的ab做不到这道题就是没告诉你进栈的同时可以随时出栈==二、填空题1.数据的物理结构主要包括顺序存储结构和链式存储结构两种情况。

2.数据结构从逻辑上划分为三种基本类型:线性结构、树型结构和图型结构。

3.4.公式:二维数组A中任一元素a ij的存储位置:(LOC(0,0)是a00的存储位置)LOC(i,j)=LOC(0,0)+(b2*i+j)L5.快速排序的时间性能分析最好情况:每一次划分对一个记录定位后,该记录的左侧子表与右侧子表的长度相同,为O(nlog2n)。

最坏情况:每次划分只得到一个比上一次划分少一个记录的子序列(另一个子序列为空),为O(n2)。

平均情况:为O(nlog2n)。

6.在快速排序、堆排序、归并排序中,___归并______排序是稳定的。

7.在堆排序的过程中,对任一分支结点进行筛运算的时间复杂度为_O(log2n)_____,整个堆排序过程的时间复杂度为___ O(nlog2n)_____。

8.快速排序的最坏时间复杂度为O(n2),平均时间复杂度为O(nlog2n)。

9.散列表中解决冲突的两种方法是开放定址法和链地址法。

10.在堆排序和快速排序中,如果从平均情况下排序的速度最快的角度来考虑应最好选择___快速_____排序,如果从节省存储空间的角度来考虑则最好选择__堆______排序。

三、判断题全对或全错得5分1.调用一次深度优先遍历可以访问到图中的所有顶点。

(×)2.分块查找的平均查找长度不仅与索引表的长度有关,而且与块的长度有关。

(√)3.冒泡排序在初始关键字序列为逆序的情况下执行的交换次数最多。

(√)4.满二叉树一定是完全二叉树,完全二叉树不一定是满二叉树。

(√)5.设一棵二叉树的先序序列和后序序列,则能够唯一确定出该二叉树的形状。

(×)6.层次遍历初始堆可以得到一个有序的序列。

(×)7.设一棵树T可以转化成二叉树BT,则二叉树BT中一定没有右子树。

(√)8.线性表的顺序存储结构比链式存储结构更好。

(×)9.中序遍历二叉排序树可以得到一个有序的序列。

(√)10.快速排序是排序算法中平均性能最好的一种排序。

(√)11.不论是入队列操作还是入栈操作,在顺序存储结构上都需要考虑“溢出”情况。

(√)12.当向二叉排序树中插入一个结点,则该结点一定成为叶子结点。

(√)13.设某堆中有n个结点,则在该堆中插入一个新结点的时间复杂度为O(log2n)。

(√)14.完全二叉树中的叶子结点只可能在最后两层中出现。

(√)15.哈夫曼树中没有度数为1的结点。

(√)16.对连通图进行深度优先遍历可以访问到该图中的所有顶点。

(√)17.先序遍历一棵二叉排序树得到的结点序列不一定是有序的序列。

(√)18.由树转化成二叉树,该二叉树的右子树不一定为空。

(×)19.线性表中的所有元素都有一个前驱元素和后继元素。

相关文档
最新文档