数据结构基础知识整理

合集下载

数据结构 知识点总结

数据结构 知识点总结

数据结构知识点总结一、基本概念数据:所有能被输入到计算机并被处理的符号的集合。

数据元素:数据的基本单位,也称为结点、节点或记录。

数据项:构成数据元素的不可分割的最小单位。

抽象数据类型:抽象数据组织和与之相关的操作,通常采用数据对象、数据关系、基本操作集这样的三元组来表示。

二、逻辑结构数据的逻辑结构是从逻辑关系上描述数据,它与数据的存储无关,是独立于计算机的。

数据元素之间的关系(逻辑结构)可分为四类:集合结构:数据元素之间除了“属于同一集合”的关系外,别无其它关系。

线性结构:数据元素之间存在一对一的关系,如数组、链表、队列和栈等。

树形结构:数据元素之间存在一对多的关系,如二叉树、多叉树等。

图结构或网状结构:数据元素之间存在多对多的关系。

三、存储结构数据对象在计算机中的存储表示称为数据的存储结构,也称物理结构。

数据元素在计算机中有两种基本的储存结构:顺序存储结构:借助元素在存储器中的相对位置来表示数据元素之间的逻辑关系,通常借助程序设计语言的数组类型来描述。

链式存储结构:无需占用一整块存储空间,数据元素的存储位置不必连续,而是通过指针链接形成逻辑关系。

四、数据结构的运算数据结构中的运算包括插入、删除、查找、遍历等,这些运算的实现依赖于具体的逻辑结构和存储结构。

五、数据结构的应用数据结构在各个领域都有广泛的应用,如数据库系统、计算机网络、图形处理等。

通过合理地选择和设计数据结构,可以提高程序的运行效率,降低存储空间的占用。

六、数据结构与算法的关系数据结构和算法是相辅相成的。

数据结构是算法的基础,算法的实现依赖于特定的数据结构。

同时,算法的优化也往往需要对数据结构进行改进和调整。

总结来说,数据结构是计算机科学中的核心概念之一,它涉及数据的组织、存储和运算等多个方面。

理解和掌握数据结构的基本知识点和原理,对于提高编程能力和解决实际问题具有重要意义。

数据结构复习资料复习提纲知识要点归纳

数据结构复习资料复习提纲知识要点归纳

数据结构复习资料复习提纲知识要点归纳数据结构复习资料:复习提纲知识要点归纳一、数据结构概述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. 数据结构的基本概念。

- 数据、数据元素、数据项。

- 数据结构的定义(逻辑结构、存储结构、数据的运算)- 数据结构的三要素之间的关系。

2. 算法的基本概念。

- 算法的定义、特性(有穷性、确定性、可行性、输入、输出)- 算法的评价指标(时间复杂度、空间复杂度的计算方法)二、线性表。

1. 线性表的定义和基本操作。

- 线性表的逻辑结构特点(线性关系)- 线性表的基本操作(如初始化、插入、删除、查找等操作的定义)2. 顺序存储结构。

- 顺序表的定义(用数组实现线性表)- 顺序表的基本操作实现(插入、删除操作的时间复杂度分析)- 顺序表的优缺点。

3. 链式存储结构。

- 单链表的定义(结点结构,头指针、头结点的概念)- 单链表的基本操作实现(建立单链表、插入、删除、查找等操作的代码实现及时间复杂度分析)- 循环链表(与单链表的区别,操作特点)- 双向链表(结点结构,基本操作的实现及特点)三、栈和队列。

1. 栈。

- 栈的定义(后进先出的线性表)- 栈的基本操作(入栈、出栈、取栈顶元素等操作的定义)- 顺序栈的实现(存储结构,基本操作的代码实现)- 链栈的实现(与单链表的联系,基本操作的实现)- 栈的应用(表达式求值、函数调用栈等)2. 队列。

- 队列的定义(先进先出的线性表)- 队列的基本操作(入队、出队、取队头元素等操作的定义)- 顺序队列(存在的问题,如假溢出)- 循环队列的实现(存储结构,基本操作的代码实现,队空和队满的判断条件)- 链队列的实现(结点结构,基本操作的实现)- 队列的应用(如操作系统中的进程调度等)四、串。

1. 串的定义和基本操作。

- 串的概念(字符序列)- 串的基本操作(如连接、求子串、比较等操作的定义)2. 串的存储结构。

- 顺序存储结构(定长顺序存储和堆分配存储)- 链式存储结构(块链存储结构)3. 串的模式匹配算法。

- 简单的模式匹配算法(Brute - Force算法)的实现及时间复杂度分析。

数据结构基础知识

数据结构基础知识

复习提纲第一章数据构造概述根本概念与术语〔P3〕1.数据构造是一门研究非数值计算程序设计问题中计算机的操作对象以及他们之间的关系和操作的学科.2.数据是用来描述现实世界的数字,字符,图像,声音,以及能够输入到计算机中并能被计算机识别的符号的集合2.数据元素是数据的根本单位3.数据对象一样性质的数据元素的集合4.数据构造三方面容:数据的逻辑构造.数据的存储构造.数据的操作.〔1〕数据的逻辑构造指数据元素之间固有的逻辑关系.〔2〕数据的存储构造指数据元素及其关系在计算机的表示( 3 ) 数据的操作指在数据逻辑构造上定义的操作算法,如插入,删除等.5.时间复杂度分析--------------------------------------------------------------------------------------------------------------------1、名词解释:数据构造、二元组2、根据数据元素之间关系的不同,数据的逻辑构造可以分为集合、线性构造、树形构造和图状构造四种类型。

3、常见的数据存储构造一般有四种类型,它们分别是___顺序存储构造_____、___链式存储构造_____、___索引存储构造_____和___散列存储构造_____。

4、以下程序段的时间复杂度为___O(N2)_____。

int i,j,*;for(i=0;i<n:i++) n+1for(j=0;j<n;j++) n+1*+=i;------------------------------------------------------------------------------------------------------------------第二章线性表1.顺序表构造由n(n>=0)个具有一样性质的数据元素a1,a2,a3……,an组成的有穷序列//顺序表构造#define MA*SIZE 100typedef int DataType;Typedef struct{DataType items[MA*SIZE];Int length;}Sqlist,*LinkList;2.单链表(1)链表结点构造//链表的节点构造Typedef struct Node{int data;struct Node *ne*t;} Lnode,*Pnode,*LinkList;(2)结点遍历void TraverseList(LinkList t){LinkList p;while(t){p=t;t=t->ne*tfree(p);}}(3)链表操作算法:初始化、插入、输出、删除void InitList(LinkList *h){*h=(LinkList)malloc(sizeof(LNode));if(!h){print("初始化错误〞);return;}(*h)->ne*t=NULL;}void InsertList(LinkList h,int pos,datatype *){ LinkList p=h,q;int i=0;while(p&&i<pos-1){p=p->ne*t;i++;}if(!p||i>pos-1)print("插入位置出错!!〞);InitList(&q);q->ne*t=NULL;q->data=*;}void DeleteList(LinkList h,int pos){LinkList p=h,q;int i=0;while(p&&i<pos-1){p=p->ne*t;i++;}if(!p||i>pos-1){cout<<〞删除位置错误〞;return;}q=p->ne*t;p->ne*t=q->ne*t;free(q);}-----------------------------------------------------------------------------------------------------------------1、线性表中,第一个元素没有直接前驱,最后一个元素没有直接后驱。

(完整版)数据结构知识点总结

(完整版)数据结构知识点总结

数据结构知识点概括第一章概论数据就是指能够被计算机识别、存储和加工处理的信息的载体。

数据元素是数据的基本单位,可以由若干个数据项组成。

数据项是具有独立含义的最小标识单位。

数据结构的定义:·逻辑结构:从逻辑结构上描述数据,独立于计算机。

·线性结构:一对一关系。

·线性结构:多对多关系。

·存储结构:是逻辑结构用计算机语言的实现。

·顺序存储结构:如数组。

·链式存储结构:如链表。

·索引存储结构:·稠密索引:每个结点都有索引项。

·稀疏索引:每组结点都有索引项。

·散列存储结构:如散列表。

·数据运算。

·对数据的操作。

定义在逻辑结构上,每种逻辑结构都有一个运算集合。

·常用的有:检索、插入、删除、更新、排序。

数据类型:是一个值的集合以及在这些值上定义的一组操作的总称。

·结构类型:由用户借助于描述机制定义,是导出类型。

抽象数据类型ADT:·是抽象数据的组织和与之的操作。

相当于在概念层上描述问题。

·优点是将数据和操作封装在一起实现了信息隐藏。

程序设计的实质是对实际问题选择一种好的数据结构,设计一个好的算法。

算法取决于数据结构。

算法是一个良定义的计算过程,以一个或多个值输入,并以一个或多个值输出。

评价算法的好坏的因素:·算法是正确的;·执行算法的时间;·执行算法的存储空间(主要是辅助存储空间);·算法易于理解、编码、调试。

时间复杂度:是某个算法的时间耗费,它是该算法所求解问题规模n的函数。

渐近时间复杂度:是指当问题规模趋向无穷大时,该算法时间复杂度的数量级。

评价一个算法的时间性能时,主要标准就是算法的渐近时间复杂度。

算法中语句的频度不仅与问题规模有关,还与输入实例中各元素的取值相关。

时间复杂度按数量级递增排列依次为:常数阶O(1)、对数阶O(log2n)、线性阶O(n)、线性对数阶O(nlog2n)、平方阶O(n^2)、立方阶O(n^3)、……k次方阶O(n^k)、指数阶O(2^n)。

数据结构基础知识总结

数据结构基础知识总结

数据结构基础知识总结数据结构是计算机科学中非常重要的一门基础学科,它研究的是不同数据类型之间以及数据元素之间的组织关系和操作方法。

在计算机程序的设计和实现过程中,合理选择和使用数据结构可以提高程序的效率和性能。

本文将总结数据结构的基础知识,包括线性结构、非线性结构和常见的数据结构算法。

一、线性结构线性结构是指数据元素之间存在着一对一的前驱和后继关系。

常见的线性结构有顺序表、链表和栈。

1. 顺序表顺序表是一种用一组连续的存储单元依次存储线性排列的数据元素的结构。

其特点是可以随机访问元素,但插入和删除操作较慢。

2. 链表链表是一种用一组不连续的存储单元存储线性排列的数据元素的结构。

链表的插入和删除操作较快,但访问元素需要遍历链表。

3. 栈栈是一种先进后出的线性结构。

它有两个基本操作:入栈和出栈。

栈可以用数组或链表实现。

二、非线性结构非线性结构是指数据元素之间存在多对多的关系,常见的非线性结构有树和图。

1. 树树是一种由n(n>=1)个有限节点组成的集合,它满足以下条件:有且只有一个特定的节点被称为根节点,除根节点外的其余节点被分成m(m>=0)个互不相交的有限集,每个集合本身又是一个树。

树的常见应用有文件系统、数据库索引等。

2. 图图是由顶点的有限非空集合和顶点之间的边的集合组成。

图可以分为有向图和无向图,顶点之间的关系可以是一对一、一对多或多对多。

图的常见应用有社交网络、路由算法等。

三、常见的数据结构算法1. 查找算法查找算法用于在给定的数据集合中找到满足特定条件的数据元素。

常见的查找算法有顺序查找、二分查找和哈希查找。

2. 排序算法排序算法用于将给定的数据集合按照特定的规则进行排序。

常见的排序算法有冒泡排序、插入排序、选择排序、快速排序和归并排序。

3. 树的遍历算法树的遍历算法用于按照特定顺序访问树中的所有节点。

常见的树的遍历算法有前序遍历、中序遍历和后序遍历。

总结:数据结构是计算机程序设计中非常重要的一部分。

数据结构知识点总结

数据结构知识点总结

数据结构知识点总结一、数据结构的分类数据结构可以分为线性结构和非线性结构两大类。

1. 线性结构线性结构是最简单、最常用的数据结构之一,它的特点是每个数据元素都只有一个前驱和一个后继,形成一个线性序列。

常见的线性结构包括:数组、链表、栈和队列。

- 数组:数组是由相同类型的元素按一定顺序排列而成的数据集合。

数组的元素可以通过下标直接访问,具有随机访问的特性。

- 链表:链表是一种线性表,由一系列节点组成,节点可以动态分配。

链表的节点之间通过指针进行连接,可以实现随机插入和删除操作。

- 栈:栈是一种特殊的线性表,只能在表尾进行插入和删除操作。

后进先出(LIFO)是栈的特点。

- 队列:队列也是一种特殊的线性表,只能在表尾进行插入操作,表头进行删除操作。

先进先出(FIFO)是队列的特点。

2. 非线性结构非线性结构是一些数据元素之间存在着多对多的关系,各元素之间并不是简单的前驱和后继关系。

常见的非线性结构包括:树和图。

- 树:树是一种非线性的数据结构,它由节点和边组成。

树中有一个特殊的节点称为根节点,其他节点按照父子关系连接起来,形成层次结构。

- 图:图是由顶点集合和边集合组成的一种数据结构。

图的边可以是有向边或无向边,顶点之间可以存在环。

二、数据结构的基本操作数据结构的基本操作包括:插入、删除、查找、更新等。

这些操作是对数据结构中的元素进行处理和管理的基本手段。

1. 插入操作插入操作是将一个新的元素插入到数据结构中的适当位置,使得整个数据结构保持有序性或其他特定的结构性质。

2. 删除操作删除操作是从数据结构中移除一个元素,使得整个数据结构保持有序性或其他特定的结构性质。

3. 查找操作查找操作是根据给定的条件在数据结构中找到符合条件的元素。

4. 更新操作更新操作是对数据结构中的元素进行修改,使得元素的值变为新给定的值。

三、常用的数据结构算法1. 排序算法排序算法是对一组元素按照指定规则进行排序的算法。

常见的排序算法包括:冒泡排序、选择排序、插入排序、快速排序、归并排序等。

数据结构知识点总结归纳整理

数据结构知识点总结归纳整理

第1章绪论1.1 数据结构的基本概念数据元是数据的基本单位,一个数据元素可由若干个数据项完成,数据项是构成数据元素的不可分割的最小单位。

例如,学生记录就是一个数据元素,它由学号、姓名、性别等数据项组成。

数据对象是具有相同性质的数据元素的集合,是数据的一个子集。

数据类型是一个值的集合和定义在此集合上一组操作的总称。

•原子类型:其值不可再分的数据类型•结构类型:其值可以再分解为若干成分(分量)的数据类型•抽象数据类型:抽象数据组织和与之相关的操作抽象数据类型(ADT)是指一个数学模型以及定义在该模型上的一组操作。

抽象数据类型的定义仅取决于它的一组逻辑特性,而与其在计算机内部如何表示和实现无关。

通常用(数据对象、数据关系、基本操作集)这样的三元组来表示。

#关键词:数据,数据元素,数据对象,数据类型,数据结构数据结构的三要素:1.逻辑结构是指数据元素之间的逻辑关系,即从逻辑关系上描述数据,独立于计算机。

分为线性结构和非线性结构,线性表、栈、队列属于线性结构,树、图、集合属于非线性结构。

2.存储结构是指数据结构在计算机中的表示(又称映像),也称物理结构,包括数据元素的表示和关系的表示,依赖于计算机语言,分为顺序存储(随机存取)、链式存储(无碎片)、索引存储(检索速度快)、散列存储(检索、增加、删除快)。

3.数据的运算:包括运算的定义和实现。

运算的定义是针对逻辑结构的,指出运算的功能;运算的实现是针对存储结构的,指出运算的具体操作步骤。

1.2 算法和算法评价算法是对特定问题求解步骤的一种描述,有五个特性:有穷性、确定性、可行性、输入、输出。

一个算法有零个或多个的输入,有一个或多个的输出。

时间复杂度是指该语句在算法中被重复执行的次数,不仅依赖于问题的规模n,也取决于待输入数据的性质。

一般指最坏情况下的时间复杂度。

空间复杂度定义为该算法所耗费的存储空间。

算法原地工作是指算法所需辅助空间是常量,即O(1)。

第2章线性表2.1 线性表的定义和基本操作线性表是具有相同数据类型的n个数据元素的有限序列。

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

数据结构基础知识整理*名词解释1、数据:是信息的载体,能够被计算机识别、存储和加工处理。

*2、数据元素:是数据的基本单位,也称为元素、结点、顶点、记录。

一个数据元素可以由若干个数据项组成,数据项是具有独立含义的最小标识单位。

*3、数据结构:指的是数据及数据之间的相互关系,即数据的组织形式,它包括数据的逻辑结构、数据的存储结构和数据的运算三个方面的内容。

*4、数据的逻辑结构:指数据元素之间的逻辑关系,即从逻辑关系上描述数据,它与数据的存储无关,是独立于计算机的。

*5、数据的存储结构:指数据元素及其关系在计算机存储器内的表示。

是数据的逻辑结构用计算机语言的实现,是依赖于计算机语言的。

*6、线性结构:其逻辑特征为,若结构是非空集,则有且仅有一个开始结点和一个终端结点,并且其余每个结点只有一个直接前趋和一个直接后继。

*7、非线性结构:其逻辑特征为一个结点可能有多个直接前趋和直接后继。

*8、算法:是任意一个良定义的计算过程,它以一个或多个值作为输入,并产生一个或多个值作为输出;即一个算法是一系列将输入转换为输出的计算步骤。

*9、算法的时间复杂度T(n):是该算法的时间耗费,它是该算法所求解问题规模n趋向无穷大时,我们把时间复杂度T(n)的数量级(阶)称为算法的渐近时间复杂度。

*10、最坏和平均时间复杂度:由于算法中语句的频度不仅与问题规模n有关,还与输入实例等因素有关;这时可用最坏情况下时间复杂度作为算法的时间复杂度。

而平均时间复杂度是指所有的输入实例均以等概率出现的情况下,算法的期望运行时间。

*11、数据的运算:指对数据施加的操作。

数据的运算是定义在数据的逻辑结构上的,而实现是要在存储结构上进行。

*12、线性表:由n(n≥0)个结点组成的有限序列。

其逻辑特征反映了结点间一对一的关系(一个结点对应一个直接后继,除终端结点外;或一个结点对应一个直接前趋,除开始结点外),这是一种线性结构。

*13、顺序表:顺序存储的线性表,它是一种随机存取结构。

通过将相邻结点存放在相邻物理位置上来反映结点间逻辑关系。

*14、单链表:每个结点有两个域:一个值域data;另一个指针域next,用来指向该结点的直接后继结点。

头指针是它的充分必要的信息。

单链表是一种单向的结构。

*15、双链表:每个结点中增加了一个prior,用来指向该点的直接前趋结点。

它是一种双向、对称的结构。

*16、循环链表:是一种首尾相接的链表。

单循环链表形成一个next链环,而双循环链表形成next链环和prior链环。

*17、存储密度:是指结点数据本身所占的存储量和整个结点结构所占的存储量之比。

顺序表的存储密度为1,而链表的存储密度小于1。

*18、栈:只允许在一端进行插入、删除运算的线性表,称为“栈”(stack)。

*19、LIFO表:即后进先出表,修改操作按后进先出的原则进行。

譬如栈就是一种LIFO 表。

*20、顺序栈:采用顺序存储结构的栈,称为顺序栈。

*21、链栈:采用链式存储结构的栈,称为链栈。

*22、队列:只允许在一端进行插入、另一端进行删除运算的线性表,称为“队列”(queue)。

*23、FIFO表:即先进先出表。

譬如队列就是一种FIFO表。

*24、顺序队列:采用顺序存储结构的队列,称为顺序队列。

*25、循环队列:为克服顺序队列中假上溢现象,将向量空间想象为一个首尾相接的圆环,这种向量称为循环向量,存储在其中的队列称为循环队列。

*26、链队列:采用链式存储结构的队列,称为链队列。

*27、字符串:由零个或多个字符组成的有限序列,一般高为S=“a1,a2,…an”。

*28、空白串:由一个或多个空格组成的串称为空白串。

*29、空串:长度为零的串称为空串,它不包括任何字符。

*30、顺序串:串的顺序存储结构简称的为顺序串。

*31、链式串:串的链式存储结构简称为链式串。

*32、模式匹配:子串的定位运算又称为串的模式匹配。

*33、对称矩阵:元素满足aij=aji(0≤i,j≤n)的矩阵。

*34、三角矩阵:主对角线以上或以下的元素(不包括对角线)均为常数的矩阵。

*35、带状矩阵:所有非零元素均集中在以主对角线为中心的带状区域的矩阵。

*36、稀疏矩阵:非零元素远远少于矩阵元素的矩阵。

*37、广义表:有n个元素a1,a2…an组成的有限序列,其中n可以是原子或一个广义表。

*38、三元组表:若线性表顺序存储的每一个结点均是三元组,那么该线性表的存储结构称为三元组表。

*39、行表:记录稀疏矩阵中每行非零元素在三元组表中的起始位置的表称为行表。

*40、内部排序:假设给定含有n个记录(R1,R2……,Rn)的文件,其相应的关键字为(K1,K2,……,Kn),则排序是确定一个排列(P(1),P(2),……P(n)),使得(Kp(1))≤Kp(2)≤……≤Kp(n)),从而得到有序文件(R*p(1),R p(2),……,R p(n))。

整个排序过程都在内存中进行的排序即为内部排序。

*41、稳定排序:假设在待排序的文件中,存在两个或两个以上的记录具有相同的关键字在用某种排序法排序后,若这些相同关键字的元素的相对次序仍然保持不变,则这处排序方法是稳定的。

*42、就地排序:若排序算法所需的辅助空间并不依赖于问题的规模n,即辅助空间为O(1),则称为就地排序。

*43、堆:n个关键字序列K1,K2,……,Kn,称为堆,当且仅当序列满足如下性质:Ki ≤K2i,且Ki≤K2i+1或Ki≥K2i,且Ki≥K2i+1。

*44、查找:即给定一个值K,在含有n个结点的表中找出关键字等于给定值K的结点。

*45、动态查找表:若在查找的同时对表做修改操作(如插入和删除),则相应的表称之为动态查找表。

*46、静态查找表:若在查找的同时不对表做修改操作(如插入和删除),则相应的表称之为静态查找表。

*47、内查找:若整个查找过程都在内存中进行,则称之为内查找。

*48、外查找:若查找过程中需要访问外存,则称之为内查找。

*49、平均查找长度:ASL=∑pici,其中n是结点的个数;pi是查找第i个结点的概率;ci是找到第i个结点所需要进行的比较次数。

*50、散列函数:在关键字和表地址之间建立的对应关系h称为散列函数。

*51、冲突:两个不同的关键字,其散列函数值相同,因而被映射到同一个表位置上的现象称为冲突。

*52、同义词:发生冲突的两个关键字称为该散列函数的同义词。

*53、装填因子:设m和n分别表示表长和表中填入的结点数,则将ɑ=n/m定义为散列表的装填因子。

*二、填空*1、数据的存储结构可用四种基本的存储方法表示,它们分别是顺序存储方法、链接、索引、散列。

2、数据的运算最常用的有五种,检索、插入、删除、更新、排序。

*3、一个算法的效率可分为时间和空间效率。

4、数据结构按逻辑结构可分为线性结构和非线性结构。

线性结构反映结点间的逻辑关系是一对一的,非线性是多对多的。

*5、顺序表相对于链表的优点有节省存储和随机存储。

6、链表相对于顺序表的优点有插入和删除操作方便。

*7、按顺序存储方法存储的线性表称为顺序表,按链式存储方法存储的线性表称为链表。

8、线性表中结点的集合是有限的,结点间的关系是一对一的。

*9、在n个结点的顺序表中插入(删除)一个结点需平均移动n/2((n-1)/2)个结点,具体的移动次数取决于表长n和插入(删除)位置i。

*10、在顺序表中访问任意一结点的时间复杂度均为O(1),因此,顺序表也称为随机存取的数据结构。

*11、在民个结点的单链表中要删除已知结点*p,需找到它的直接前趋结点的地址,其时间复杂度为O(n)。

*12、在双链有中要删除已知结点*p,其时间复杂度为O(1)。

*13、在单链表中要在已知结点*p之前插入一新结点,仍需找到*p的直接前趋结点的地址,其时间复杂度为O(n);而在双链表中,完成同样操作其时间复杂庶O(1)。

*14、在循环链表中,可根据在一结点的地址遍历整个链表,而单链表中需知道头指针才能遍历链表。

15、在栈中存取数据遵从后进先出的原则,队列中则是先进先出。

*16、栈结构中,允许插入、删除的一端称为栈顶,另一瑞称为栈底;在队列中,允许插入的称为队尾,允许删除的一端称为队首。

*17、在有n个元素的栈中,进栈和退栈操作的复杂度为O(1)和O(1)。

*18、设长度为n的链队列用单循环链表示,若只设头指针,则入队和出队操作的时间复杂度分别为O(n)和O(1);若只设尾指针,则O(1)和O(1)。

*19、通常在程序中使用串可分为串变量和串常量;而串按存储方式又可分为顺序串和链式串。

20、链式存储与顺序存储的相互串匹配算法的效率相同。

*21、成功匹配的起始位置称为有效位移,所有匹配不成功称为无效位移;NaivestrMatch返回的是第1个有效位移。

*22、串的朴素匹配算法最坏的情况下需要比较字符的总次数为(n-m+1)m,n为主串长,m为子串长。

*23、对于数组An×m,其元素aij按行优先与列优先存储的地址之差为(i-1)(n-1)-(j-1)(m-1).(两次存储的LOC(a11)相同.)*24、特殊矩阵是指非零或零元素分布有一定规律的矩阵。

25、多维数组的存储方式有顺序和链式。

26、递归表是指允许递归的广义表,纯表是指与树对应的广义表。

*27、任何一个非空广义表的表头是表中第一个元素,它可以是原子,也可是广义表而表尾必定是广义表。

*28、表的长度是指广义表元素的个数,表的深度是指广义表展开后扩号的层数。

29、树中结点的最大层次称为树的深度(高度)。

*30、若有一棵二叉排序树,则按照中序遍历顺序将产生一个有序序列。

31、由一棵二叉树的前序序列和中序可惟一确定这棵二叉树。

*32、将一棵树转换成一棵二叉树后,二叉树的根结点没有右子树。

33、图有邻接矩阵、邻接表等存储结构,遍历图有深度优先(DFT)和广度优先(BFT)等方法。

*34、有向图G用邻接表矩阵存储,其第i行的所有元素之和等于顶点i的出度。

35、如果n个顶点的图是一个环,则它有n个生成树。

*36、n个顶点e条边的图用邻接矩阵(邻接表)存储,则空间复杂度为O(n2)(O(n+e))。

37、稀疏(稠密)图G,采用邻接表(邻接矩阵)存储较省空间。

*38、图的逆邻接表存储结构只适用于有向图。

39、已知一个图的邻接矩阵表示,删除所有从第i个顶点出发的边的方法是将邻接矩阵的第i行全置0、*40、n个顶点e条边的图用邻接矩阵(邻接表)存储,深度优先遍历的时间复杂度为O(n2)(O(n+e))。

(广度优先时间复杂度同上。

)*41、图的BFS生成树的树高比DFS生成树的树高小或相等。

*42、用Prim(Kruskal)算法求具有n个顶点e条边的图的最小生成树的时间复杂度为O(n2)(O(elog2e))。

相关文档
最新文档