数据结构-复习资料
- 格式:doc
- 大小:99.00 KB
- 文档页数:10
数据结构复习资料(亲自整理)1、链表是一种存储数据的链式结构,每个数据之间都是相关联的。
2、线性结构是一个有序数据元素的集合,包括线性表、栈、队列、双队列、数组和串。
3、树是由n(n>=1)个有限节点组成一个具有层次关系的集合,而二叉树是每个结点最多有两个子树的有序树。
二叉树与树的主要差别在于,二叉树结点的最大度数为2,而树中结点的最大度数没有限制;二叉树的结点有左、右之分,而树的结点无左、右之分。
4、堆是一种可以被看做一棵树的数组对象,总是满足某个节点的值总是不大于或不小于其父节点的值,且堆总是一棵完全二叉树。
5、二叉排序树是一种满足以下递归定义的二叉树:若左子树非空,则左子树所有节点的值均小于它的根节点;若右子树非空,则右子树所有节点的值均大于于它的根节点;左右子树也分别为二叉排序树。
1、在已知前序遍历和中序遍历的情况下,可以通过画树的方法求得后序遍历。
具体步骤如下:首先根据前序遍历的特点,确定根节点;然后观察中序遍历,将左子树和右子树分别确定下来;接着对左子树和右子树分别进行递归,直到遍历完所有节点,最后得到后序遍历。
2、树和二叉树之间可以相互转换。
将树转换为二叉树的方法是:对于每个节点,将其第一个孩子作为其左孩子,将其兄弟作为其右孩子。
将二叉树转换为树的方法是:对于每个节点,将其右孩子作为其兄弟。
3、二叉树线索化是将二叉树中的空指针指向该节点在中序遍历中的前驱或后继节点的过程。
在线索二叉树中,一个结点是叶结点的充要条件为:左、右标志均是1.4、邻接表是图的一种链式存储结构,用于表示图中每个节点的邻居节点。
每个节点都有一个链表,存储着与该节点相邻的节点。
邻接表是一种图的存储结构,对于每个顶点建立一个单链表,单链表中的结点表示依附于该顶点的边(对于有向图是以该顶点为尾的弧)。
邻接表中的表结点和头结点分别表示边和顶点,包含信息如下:表结点adjvex(邻接点)。
nextarc(指向下一个表结点)(权值等信息);头结点data(顶点信息)和firstarc(指向第一个表结点)。
数据结构复习资料复习提纲知识要点归纳数据结构复习资料:复习提纲知识要点归纳一、数据结构概述1. 数据结构的定义和作用2. 常见的数据结构类型3. 数据结构与算法的关系二、线性结构1. 数组的概念及其特点2. 链表的概念及其分类3. 栈的定义和基本操作4. 队列的定义和基本操作三、树结构1. 树的基本概念及定义2. 二叉树的性质和遍历方式3. 平衡二叉树的概念及应用4. 堆的定义和基本操作四、图结构1. 图的基本概念及表示方法2. 图的遍历算法:深度优先搜索和广度优先搜索3. 最短路径算法及其应用4. 最小生成树算法及其应用五、查找与排序1. 查找算法的分类及其特点2. 顺序查找和二分查找算法3. 哈希查找算法及其应用4. 常见的排序算法:冒泡排序、插入排序、选择排序、归并排序、快速排序六、高级数据结构1. 图的高级算法:拓扑排序和关键路径2. 并查集的定义和操作3. 线段树的概念及其应用4. Trie树的概念及其应用七、应用案例1. 使用数据结构解决实际问题的案例介绍2. 如何选择适合的数据结构和算法八、复杂度分析1. 时间复杂度和空间复杂度的定义2. 如何进行复杂度分析3. 常见算法的复杂度比较九、常见问题及解决方法1. 数据结构相关的常见问题解答2. 如何优化算法的性能十、总结与展望1. 数据结构学习的重要性和难点2. 对未来数据结构的发展趋势的展望以上是数据结构复习资料的复习提纲知识要点归纳。
希望能够帮助你进行复习和回顾,加深对数据结构的理解和掌握。
在学习过程中,要注重理论与实践相结合,多进行编程练习和实际应用,提高数据结构的实际运用能力。
祝你复习顺利,取得好成绩!。
数据结构复习资料数据结构复习资料数据结构是计算机科学中非常重要的一个领域,它研究的是数据的组织、存储和管理方式。
掌握数据结构的基本概念和常用算法,对于提高程序的效率和性能至关重要。
在这篇文章中,我将为大家提供一些数据结构的复习资料,希望对大家的学习有所帮助。
一、线性结构1. 数组(Array)数组是一种最基本的数据结构,它将一组相同类型的数据元素按照一定顺序存储在连续的内存空间中。
复习数组时,需要掌握数组的定义、初始化、访问和操作等基本操作。
2. 链表(Linked List)链表是一种常见的动态数据结构,它由一系列节点组成,每个节点包含数据和指向下一个节点的指针。
复习链表时,需要了解单链表、双链表和循环链表的定义、插入、删除和遍历等操作。
3. 栈(Stack)栈是一种具有后进先出(LIFO)特性的数据结构,它只允许在栈顶进行插入和删除操作。
复习栈时,需要了解栈的定义、初始化、入栈、出栈和判空等基本操作。
4. 队列(Queue)队列是一种具有先进先出(FIFO)特性的数据结构,它只允许在队尾插入元素,在队头删除元素。
复习队列时,需要了解队列的定义、初始化、入队、出队和判空等基本操作。
二、非线性结构1. 树(Tree)树是一种具有分层结构的数据结构,它由一组节点组成,每个节点可以有零个或多个子节点。
复习树时,需要了解二叉树、平衡二叉树和二叉搜索树的定义、插入、删除和遍历等操作。
2. 图(Graph)图是一种由节点和边组成的数据结构,它用于表示多对多的关系。
复习图时,需要了解图的定义、遍历、最短路径和最小生成树等算法。
三、排序算法排序算法是数据结构中非常重要的一部分,它用于将一组无序的数据按照一定的规则进行排列。
复习排序算法时,需要了解冒泡排序、插入排序、选择排序、快速排序、归并排序和堆排序等常见的排序算法,以及它们的时间复杂度和空间复杂度。
四、查找算法查找算法是数据结构中用于在一组数据中查找特定元素的算法。
数据结构复习提纲一、线性表线性表是最基本的数据结构之一,它是具有相同数据类型的 n 个数据元素的有限序列。
1、顺序表定义和特点:顺序表是用一组地址连续的存储单元依次存储线性表的数据元素。
存储结构:通常使用数组来实现。
基本操作:插入、删除、查找、遍历等。
时间复杂度分析:插入和删除操作在平均情况下的时间复杂度为O(n),查找和遍历操作的时间复杂度为 O(n)。
2、链表定义和特点:链表是通过指针将各个数据元素链接起来的一种存储结构。
单链表:每个节点包含数据域和指针域,指针域指向链表的下一个节点。
双链表:节点包含两个指针域,分别指向前驱节点和后继节点。
循环链表:尾节点的指针指向头节点,形成一个环形结构。
基本操作:插入、删除、查找等。
时间复杂度分析:插入和删除操作在平均情况下的时间复杂度为O(1),查找操作的时间复杂度为 O(n)。
二、栈和队列1、栈定义和特点:栈是一种限制在一端进行插入和删除操作的线性表,遵循“后进先出”的原则。
存储结构:顺序栈和链栈。
基本操作:入栈、出栈、栈顶元素获取等。
应用:表达式求值、括号匹配、函数调用等。
2、队列定义和特点:队列是一种在一端进行插入操作,在另一端进行删除操作的线性表,遵循“先进先出”的原则。
存储结构:顺序队列和链队列。
基本操作:入队、出队、队头元素获取等。
循环队列:解决顺序队列“假溢出”问题。
应用:层次遍历、消息队列等。
三、串1、串的定义和存储方式定长顺序存储堆分配存储块链存储2、串的基本操作串的赋值、连接、比较、求子串等。
3、模式匹配算法朴素的模式匹配算法KMP 算法:理解其原理和计算 next 数组的方法。
四、数组和广义表1、数组数组的定义和存储结构数组的地址计算特殊矩阵的压缩存储(如对称矩阵、三角矩阵、稀疏矩阵)2、广义表广义表的定义和表示广义表的递归算法1、树的基本概念定义、术语(如节点、度、叶子节点、分支节点、父节点、子节点、兄弟节点、层次等)树的性质2、二叉树定义和特点二叉树的性质完全二叉树和满二叉树3、二叉树的存储结构顺序存储链式存储4、二叉树的遍历先序遍历中序遍历后序遍历层序遍历5、二叉树的递归和非递归遍历算法实现线索化的目的和方法7、树、森林与二叉树的转换8、哈夫曼树定义和构造方法哈夫曼编码六、图1、图的基本概念定义、术语(如顶点、边、权、有向图、无向图、邻接矩阵、邻接表等)2、图的存储结构邻接矩阵邻接表十字链表邻接多重表3、图的遍历深度优先搜索(DFS)广度优先搜索(BFS)4、图的应用最小生成树(Prim 算法、Kruskal 算法)最短路径(Dijkstra 算法、Floyd 算法)拓扑排序关键路径七、查找1、查找的基本概念关键字、平均查找长度等2、顺序查找算法实现时间复杂度3、折半查找算法实现时间复杂度判定树4、分块查找5、二叉排序树定义和特点插入、删除操作查找算法6、平衡二叉树定义和调整方法7、 B 树和 B+树结构特点基本操作8、哈希表哈希函数的构造方法处理冲突的方法(开放定址法、链地址法等)八、排序1、排序的基本概念排序的稳定性2、插入排序直接插入排序折半插入排序希尔排序3、交换排序冒泡排序快速排序4、选择排序简单选择排序堆排序5、归并排序6、基数排序7、各种排序算法的时间复杂度、空间复杂度和稳定性比较。
数据结构复习资料一、数据结构的基本概念数据结构是指相互之间存在一种或多种特定关系的数据元素的集合。
它不仅要考虑数据元素的存储,还要关注数据元素之间的关系以及对这些数据的操作。
数据元素是数据的基本单位,例如整数、字符、字符串等。
而数据项则是数据元素的最小不可分割的部分。
常见的数据结构类型包括线性结构(如数组、链表、栈和队列)、树形结构(如二叉树、二叉搜索树、AVL 树等)、图形结构等。
二、线性结构1、数组数组是一组具有相同数据类型的元素的有序集合。
它的优点是可以通过下标快速访问元素,但插入和删除操作可能比较低效,因为需要移动大量元素。
2、链表链表由一系列节点组成,每个节点包含数据和指向下一个节点的指针。
链表的插入和删除操作相对简单,但访问特定元素需要遍历链表。
3、栈栈是一种特殊的线性表,遵循后进先出(LIFO)原则。
入栈和出栈操作是栈的基本操作。
4、队列队列遵循先进先出(FIFO)原则,入队和出队操作是队列的主要操作。
三、树形结构1、二叉树二叉树是每个节点最多有两个子节点的树形结构。
它有满二叉树、完全二叉树等特殊形式。
2、二叉搜索树二叉搜索树的左子树的所有节点值小于根节点值,右子树的所有节点值大于根节点值。
这使得查找、插入和删除操作的平均时间复杂度为 O(log n)。
3、 AVL 树AVL 树是一种自平衡的二叉搜索树,通过旋转操作保持树的平衡,从而保证查找、插入和删除的时间复杂度始终为 O(log n)。
四、图形结构图形由顶点和边组成,可以分为有向图和无向图。
常见的算法包括深度优先搜索和广度优先搜索,用于遍历图形。
五、数据结构的操作对于不同的数据结构,常见的操作包括创建、插入、删除、查找、遍历等。
1、插入操作根据数据结构的特点,选择合适的位置插入新元素。
2、删除操作准确找到要删除的元素,并处理删除后的结构调整。
3、查找操作利用数据结构的特性,提高查找效率。
4、遍历操作如前序遍历、中序遍历、后序遍历对于二叉树;深度优先遍历和广度优先遍历对于图形。
《数据结构》课程复习资料一、填空题:1.设需要对5个不同的记录关键字进行排序,则至少需要比较土次,至多需要比较10次。
2.设二叉排序树的高度为h,则在该树中查找关键字key最多需要比较丄次。
3.设在长度为20的有序表中进行二分查找,则比较一次查找成功的结点数有丄个,比较两次查找成功有结点数有生个。
4.数据结构从逻辑上划分为三种基本类型§线性结构、树型结构和图型结构。
5.在一个具有n个顶点的无向完全图中,包含有n(n-l)/2条边,在一个具有n个顶点的有向完全图中,包含有n(n-l)条边。
6.向一棵B.树插入元素的过程中,若最终引起树根结点的分裂,则新树比原树的高度增加1。
7•在堆排序的过程中,对任一分支结点进行筛运算的时间复杂度为0(log2n),整个堆排序过程的时间复杂度为0(nlog2n)。
8.在快速排序、堆排序、归并排序中,归并排序是稳定的。
9.在有n个叶子结点的哈夫曼树屮,总结点数是旷1 °10.—棵树T采用二叉链表存储,如果树T中某结点为叶子结点,则在二叉链表BT中所对应的结点一定左右子树空。
11.已知数组A [ 1 0 ] [ 1 0 ]为对称矩阵,英中每个元素占5个单元。
现将英下三角部分按行优先次序存储在起始地址为1000的连续的内存单元中,则元素A [5, 6]对应的地址是1225 o12.在有n个结点的无向图中,其边数最多为n(n-l)/2。
13.取出广义表A二(x, (a, b, c, d))中原子x的函数是head (A) o14.对矩阵采用压缩存储是为了节省空间。
15.带头结点的双循环链表L为空表的条件是L->next二L->prior 或L-〉next二L。
16.设线性表中元素的类型是实型,其首地址为1024,则线性表屮第6个元素的存储位置是1044。
17.对于顺序存储的栈,因为栈的空间是有限的,在进行入栈(插入)运算时,可能发生栈的上溢,在进行出栈(删除)运算时,可能发生栈的下溢。
数据结构复习题及答案数据结构习题一、名词解释1.数据、数据元素、数据项、数据结构、数据的逻辑结构、数据物理结构、顺序存储、链式存储、算法、时间复杂度、空间复杂度。
2.线性表、顺序表、单链表、双向链表、循环链表、双向循环链表、三个概念的区别:头指针、头结点、首元结点(第1个元素结点)。
3.栈(顺序栈、链栈)、队列(顺序队、链队)、循环队列、递归、稀疏矩阵、三元组。
4.树、叶子结点、结点的度、树的度、树的高(深)度、二叉树、遍历、满二叉树、完全二叉树、哈夫曼树、WPL、哈夫曼编码。
5.图(有向、无向)、网、边、弧、度、入度、出度、完全图(有向、无向)、(强)连通图(分量)、(最小)生成树、邻接矩阵、邻接表、DFS、BFS。
6.查找表、关键字、静态查找、动态查找、ASL、顺序查找、折半查找、分块查找、二叉排序树。
7、排序、内(外)排序、稳定性、插入(直接、希尔),交换(起泡、快速),选择(直接、堆),2路归并。
一、填空题1.数据结构是研究数据的_逻辑结构__和___物理结构__,并在这种结构上定义相关的运算,设计实现这些运算的算法,分析算法的效率。
算法的效率包括时间和空间两个方面,分别称为___时间复杂度____和__空间复杂度___。
2.数据的基本单元是__数据元素__,数据的最小单元是__数据项_。
3.算法是对特定问题求解___步骤___的一种描述,是指令的有限序列。
4.一个算法的时间复杂度为(3n3+2n—7),其数量级表示为O(n3)_。
5.一个算法具有5个特性:确定性、可行性、有穷性、输入和输出。
6.算法机能的阐发和怀抱,能够从算法的工夫庞大度和空间庞大度来评判算法的好坏。
7.数据的逻辑布局包孕调集布局、线性布局、树形布局和图型布局四品种型。
8.数据布局在计较机中的表示称为数据的物理布局,它能够采用__按次存储___或__链式存储_两种存储方法。
9.线性表有两种存储布局,划分为按次存储和链式存储。
数据结构复习资料(亲自整理)数据结构复习资料(亲自整理)引言:数据结构是计算机科学中的重要基础知识,掌握良好的数据结构能够提高程序的运行效率,同时也是进行算法设计和优化的关键。
本文将为大家提供一份亲自整理的数据结构复习资料,旨在帮助读者回顾和巩固数据结构的知识,并提供一些实践经验和应用场景。
一、数据结构的概念和基本知识1.1 数据结构的定义数据结构是指数据元素之间的相互关系和组织形式,它包括线性结构、树形结构、图形结构等多种形式。
数据结构可以用来描述程序的运行状态和过程中产生的数据,是程序设计的基础。
1.2 常见的数据结构类型介绍常见的数据结构类型,如数组、链表、栈、队列、树、图等,并分别阐述它们的特点、适用场景和基本操作。
1.3 数据结构的时间复杂度和空间复杂度分析详细解释时间复杂度和空间复杂度的概念,分析不同数据结构及其操作的时间和空间复杂度,并通过实例演示如何计算和评估复杂度。
二、线性结构2.1 数组(Array)介绍数组的定义和基本操作,包括初始化、插入、删除、查找等操作。
通过示例展示如何使用数组解决实际问题,并探讨数组的优缺点及应用场景。
2.2 链表(Linked List)介绍链表的概念和分类,包括单向链表、双向链表和循环链表。
详细说明链表的插入、删除和查找操作,并讨论链表的优缺点及适用场景。
2.3 栈(Stack)解释栈的概念和特点,包括栈的基本操作(push、pop、top等)。
演示如何使用栈来解决实际问题,如逆序输出、括号匹配等,同时介绍栈的应用领域。
2.4 队列(Queue)描述队列的定义和基本操作(enqueue、dequeue等),并通过实例介绍队列的应用,如打印任务调度、消息传递等。
三、树形结构3.1 二叉树(Binary Tree)解释二叉树的定义和性质,包括满二叉树、完全二叉树和二叉查找树等。
介绍二叉树的遍历方式(前序、中序、后序)和常见操作,并给出实际应用案例。
3.2 堆(Heap)介绍堆的概念和特点,包括最大堆、最小堆和堆排序。
《数据结构》复习资料1一、选择题1. 一棵二叉树中第6层上最多有()个结点。
A. 2B. 31C. 32D. 642. 顺序表中数据元素的存取方式为()。
A. 随机存取B. 顺序存取C. 索引存取D. 连续存取3. 设有无向图G=(V,E),其中顶点集合V={a,b,c,d,e,f},边集合E={(a,b), (a,e), (a,c), (b,e), (c,f), (f,d), (e,d)}。
对G进行深度优先遍历,正确的遍历序列是()。
A. a,b,e,c,d,fB. a,c,f,e,b,dC. a,e,b,c,f,dD. a,e,d,f,c,b4. 在待排元素序列基本有序的前提下,效率最高的排序方法是()。
A. 插入B. 选择C. 快速D. 归并5. 设表中含100个数据元素,用折半查找法进行查找,则所需最大比较次数为()。
A. 50B. 25C. 10D. 76. 设哈希表地址范围为0~19,哈希函数H(key)=key%17,使用二次探测再散列法处理冲突。
若表中已存放有关键字值为6、22、38、55的记录,则再放入关键字值为72的记录时,其存放地址应为()。
A. 2B. 3C. 4D. 7E. 8F. 以上都不对7. 设对下图从顶点a出发进行深度优先遍历,则()是可能得到的遍历序列。
A. acfgdebB. abcdefgC. acdgbefD. abefgcd8. 若需在O(nlog2n)的时间内完成对数组的排序,且要求排序是稳定的,则可选择的排序方法是()。
A. 快速排序B. 堆排序C. 归并排序D. 直接插入排序9. 设有一组关键字值(46,79,56,38,40,84),则用堆排序的方法建立的初始堆为()。
A. 79,46,56,38,40,84B. 84,79,56,38,40,46C. 84,79,56,46,40,38D. 84,56,79,40,46,3810. 设广义表L=((a,()),b,(c,d,e)),则Head(Tail(Tail(L)))的值为()。
数据结构总复习一、基本概念1. 数据结构的定义及分类2. 算法的基本概念和特性3. 数据结构与算法的关系二、线性表1. 顺序表的实现和应用2. 链表的实现和应用3. 栈的实现和应用4. 队列的实现和应用三、树结构1. 二叉树的定义和性质2. 二叉树的遍历算法3. 二叉树的存储结构和应用4. 线索二叉树的实现和应用5. Huffman树及其应用四、图结构1. 图的基本概念和术语2. 图的存储结构3. 图的遍历算法4. 最小树算法5. 最短路径算法五、查找算法1. 顺序查找2. 二分查找3. 哈希查找六、排序算法1. 冒泡排序2. 插入排序3. 选择排序4. 快速排序5. 归并排序6. 堆排序7. 基数排序七、高级数据结构1. 并查集2. 图的应用:拓扑排序、关键路径算法3. B树与B+树的概念4. 红黑树的定义和性质5. AVL树的定义和性质八、算法分析1. 最坏情况、平均情况和最好情况复杂度分析2. 时间复杂度和空间复杂度计算方法3. 常见算法的时间复杂度比较4. 算法效率的优化策略九、附件:示例代码1. 顺序表代码示例2. 链表代码示例3. 栈代码示例4. 队列代码示例5. 二叉树代码示例6. 图代码示例7. 查找算法代码示例8. 排序算法代码示例9. 高级数据结构代码示例10. 算法分析代码示例法律名词及注释:1. 数据结构:在计算机中组织和存储数据的方式和方法。
2. 算法:解决问题的步骤和方法。
3. 顺序表:采用顺序存储结构的线性表。
4. 链表:采用链式存储结构的线性表。
5. 栈:一种特殊的线性表,只能在一端进行插入和删除操作。
6. 队列:一种特殊的线性表,只能在一端进行插入操作,另一端进行删除操作。
7. 二叉树:每个节点最多有两个子节点的树结构。
8. 图:由顶点和边构成的非线性结构。
9. 哈希查找:利用哈希函数将关键字和存储位置一一对应的查找方法。
10. 冒泡排序:通过相邻元素之间的比较和交换来实现排序的算法。
1. 快速排序在最坏情况下的时间复杂度为( D )。
A.O(log2n) B.O(nlog2n) C.O (n) D. O (n2)2.设一棵二叉树的深度为k,则该二叉树中最多有( D )个结点。
A. 2k-1B. 2kC.2k-1D. 2k-13.二叉树中第i(i≥1)层上的结点数最多有( C )个。
A. 2iB. 2iC. 2i-1D. 2i-1 4.设指针变量p指向单链表结点A,则删除结点A的后继结点B需要的操作为( A )。
A. p->next=p->next->nextB. p=p->nextC. p=p->next->nextD. p->next=p5.设栈S和队列Q的初始状态为空,元素E1、E2、E3、E4、E5和E6依次通过栈S,一个元素出栈后即进入队列Q,若6个元素出列的顺序为E2、E4、E3、E6、E5和E1,则栈S的容量至少应该是( C )。
A. 6B. 4C. 3D. 26.设有以下四种排序方法,则( B )的空间复杂度最大。
A. 冒泡排序B. 快速排C. 堆排序D. 希尔排序7.设结点A有3个兄弟结点且结点B为结点A的双亲结点,则结点B的度数数为( B )。
A. 3B. 4C. 5D. 18.根据二叉树的定义可知二叉树共有( B )种不同的形态。
A. 4B. 5C. 6D. 79.对一个算法的评价,不包括如下( A )方面的内容。
A.并行性 B.健壮性和可读性 C.正确性 D.时空复杂度10.在二叉排序树中插入一个结点的时间复杂度为( C )。
A.O(1) B.O(n) C.O(log2n) D.O(n2)11. 队列是一种( B )的线性表。
A.先进后出B.先进先出 C.只能插入D.只能删除12.采用开放定址法处理散列表的冲突时,其平均查找长度( C )。
A.低于链接法处理冲突 B. 与链接法处理冲突相同C.高于链接法处理冲突 D.高于二分查找13.设有序顺序表中有n个数据元素,则利用二分查找法查找数据元素X的最多比较次数不超过( A )。
A. log2n+1 B.log2n-1 C. log2n D. log2(n+1)14. 从数据结构上讲,字符串是比较特殊的( C )。
A.堆栈 B.队列 C.线性表D.二叉树15.函数substring(“DATASTRUCTURE”,5,9)的返回值为( A )。
A.STRUCTURE B.DATAC.ASTRUCTUR D.DATASTRUCTURE16.队列是一种( B )的线性表。
A.先进后出B.先进先出 C.只能插入D.只能删除17.对一个算法的评价,不包括如下( A )方面的内容。
A.并行性 B.健壮性和可读性 C.正确性 D.时空复杂度18. 从二叉搜索树中查找一个元素时,其时间复杂度大致为( C )。
A. O(n)B. O(1)C. O(log2n)D. O(n2)19.采用开放定址法处理散列表的冲突时,其平均查找长度( C )。
A.低于链接法处理冲突 B. 与链接法处理冲突相同C.高于链接法处理冲突 D.高于二分查找20.设有序顺序表中有n个数据元素,则利用二分查找法查找数据元素X的最多比较次数不超过( A )。
A. log2n+1 B.log2n-1 C. log2n D. log2(n+1)21.下列四种排序中( D )的空间复杂度最大。
A.堆B.冒泡排序 C.希尔排序 D.快速排序22.设某二叉树中度数为0的结点数为N0,度数为1的结点数为Nl,度数为2的结点数为N2,则下列等式成立的是( B )。
A. N0=N1+1 B. N=N2+1 C. N=Nl+N2D. N=2N1+l23.时间复杂度不受数据初始状态影响而恒为O(nlog2n)的是( B )。
A. 冒泡排序B.堆排序C.希尔排序D.快速排序1.字符串必须以字符’\0’表示串值的终结。
√2.哈夫曼树中没有度数为1的结点。
√3.冒泡排序在初始关键字序列为逆序的情况下执行的交换次数最多。
√4.设初始记录关键字基本有序,则快速排序算法的时间复杂度为O(nlog2n)。
5.分块查找的平均查找长度不仅与索引表的长度有关,而且与块的长度有关。
√6.如果两个关键字的值不等但哈希函数值相等,则称这两个关键字为同义词。
√7.有向图的邻接表和逆邻接表中表结点的个数不一定相等。
8.如果某个有向图的邻接表中第i条单链表为空,则第i个顶点的出度为零。
√9.线性表中的所有元素都有一个前驱元素和后继元素。
10.带权无向图的最小生成树是唯一的。
11. 线性表中的所有元素都有一个前驱元素和后继元素。
12. 非空的双向循环链表中任何结点的前驱指针均不为空。
√13.图的邻接矩阵法:n个顶点需要n*n个单元存储边(弧);空间效率为O(n2)。
√14.稀疏矩阵的压缩存储可以用一个三元组表来表示稀疏矩阵中的非0元素。
15.入栈操作和入队列操作在链式存储结构上实现时需要考虑栈溢出的情况。
16.中序遍历一棵二叉排序树可以得到一个有序的序列。
√17.顺序表查找指的是在顺序存储结构上进行查找。
1.设指针变量p指向单链表中结点A,指针变量s指向被插入的结点X,则在结点A的后面插入结点X需要执行的语句序列:。
2. 具有n个顶点,条边的图,称为完全无向图;具有n个顶点,条弧的有向图,称为完全有向图。
3. 设输入序列为1、2、3,则经过栈的作用后可以得到____5____种不同的输出序列。
4. 设二叉树中结点的两个指针域分别为lchild和rchild,则判断指针变量p所指向的结点为叶子结点的条件是_p->lchild==0&&p->rchild==0 ___。
5. 设二叉树中结点的两个指针域分别为lchild和rchild,则判断指针变量p所指向的结点为叶子结点的条件是_ p->lchild==0&&p->rchild==0________。
6. 设一组初始记录关键字序列为(20,18,22,16,30,19),则以20为中轴的一趟快速排序结果为__19,18,16,20,30,22____________________________。
7. for(i=1,t=1,s=0;i<=n;i++) {t=t*i;s=s+t;}的时间复杂度为_____O(n) ____。
8. 设有n个结点的完全二叉树,如果按照从自上到下、从左到右从1开始顺序编号,则第i个结点的双亲结点编号为____i/2________,右孩子结点的编号为____2i+1 _______。
9. 设某无向图中顶点数和边数分别为n和e,所有顶点的度数之和为d,则e=_2d______。
10. 设有向图G的二元组形式表示为G =(V,E),V={1,2,3,4,5},E={<1,2>,<2,4>,<4,5>,<1,3>,<3,2>,<3,5>},则该图的一种拓扑排序序列为___1,3,2,4,5_____________________ 。
11. 设查找表中有100个元素,如果用二分法查找方法查找数据元素X,则最多需要比较___7_____次就可以断定数据元素X是否在查找表中。
12.设一组初始记录关键字序列为(49,38,65,97,76,13,27,50),则以d=4为增量的一趟希尔排序结束后的结果为________49,13,27,50,76,38,65,97 ______________。
13.设某棵二叉树的中序遍历序列为ABCD,后序遍历序列为BADC,则其前序遍历序列为___BADC_______。
14.完全二叉树中第5层上最少有_____1_____个结点,最多有___16______个结点。
15.设有一组初始记录关键字序列为(50,16,23,68,94,70,73),则将它们调整成初始堆只需把16与_____50______相互交换即可。
16. 子串的定位运算通常称为串的_串匹配___,是串处理中最重要的运算之一若n为主串长度,m为子串长度,则串的匹配算法时间复杂度为_m*n___。
17 在堆排序的过程中,对任一分支结点进行筛运算的时间复杂度为_ O(log2n)_______,整个堆排序过程的时间复杂度为_ O(nlog2n)_______。
18. 具有n个顶点,____ n(n-1)/2_________条边的图,称为完全无向图;具有n个顶点,____ n(n-1)____________条弧的有向图,称为完全有向图。
19 一组有序的记录关键字序列为(13,18,24,35,47,50,62,83,90),查找方法用二分查找,查找关键字62时的比较次数为___2____,查找成功时的平均查找长度_ASL=91*1+2*2+3*4+4*2)=25/9___。
20.设有一组初始记录关键字序列为(50,16,23,68,94,70,73),则将它们调整成初始堆只需把16与____50_______相互交换即可。
1.阅读下面的算法LinkList mynote(LinkList L) {//L是不带头结点的单链表的头指针 if(L&&L->next){q=L; L=L->next; p=L;S1: while(p->next) p=p->next;p->next=q; q->next=NULL;}return L;}请回答下列问题:1)说明语句S1的功能;答:查询链表的尾结点2)设链表表示的线性表为(a1,a2, …,an),写出算法执行后的返回值所表示的线性表________(a2,a3,……,an,a1)_______________________。
2. 阅读下面算法:void ABC(BTNode * BT) {if (BT) {ABC (BT->left);cout<<BT->data<<’’;ABC (BT->right);}}该算法的功能是:____递归地后序遍历链式存储的二叉树。
____________。
3.阅读下面算法void conversion(){Stack s; int n; SElemType e; initstack(s);printf("Please input number:");scanf(“%d”,&n);while(n){push(s,n%6); n=n/6;}while(!stackempty(s)){pop(s,e); printf(“%d”,e);}}1)指出该算法的功能。