数据结构基础知识大全
数据结构知识点

数据结构是计算机科学的一个关键领域,主要研究非数值计算的程序设计问题中,计算机的操作对象以及它们之间的关系和操作。
数据元素是数据的基本单位,在计算机程序中通常作为一个整体进行考虑和处理。
数据结构主要包含三个方面的含义:逻辑结构、存储结构、数据运算。
同时,数据类型、抽象数据类型也是数据结构的重要组成部分。
让我们详细了解一下这些知识点:
1. 逻辑结构:这是数据元素之间的逻辑关系,包括线性结构(如线性表、栈、队列)和非线性结构(如树、图、集合)。
2. 存储结构:也称为物理结构,是逻辑结构在计算机中的表示。
3. 数据类型:是一个值的集合以及定义在这个值集上的一组操作的总称。
4. 抽象数据类型:通常由用户定义,用以表示应用问题的数据模型以及定义在该模型上的一组操作。
5. 数组和链表:包括其定义、初始化、基本操作等。
特别是单链表的定义和初始化,这是一个常见的考试知识点。
6. 栈和队列:包括其定义、基本操作等。
7. 树和图:包括二叉树、AVL树、堆、B树、红黑树、图等数据结构的定义、基本操作和应用。
8. 时间复杂度和空间复杂度:算法的效率分析主要依赖于时间复杂
度和空间复杂度的估算。
9. 各种数据结构的应用和实现:需要理解每种数据结构的优缺点,以及各自适用的场景,能够根据实际问题选择合适的数据结构。
数据结构知识点总结

数据结构知识点总结数据结构是计算机科学中非常重要的一个概念,它是指一组数据的组织方式,以及对这组数据进行操作的方法。
数据结构可以分为线性结构和非线性结构两种。
下面将对常见的数据结构进行总结,希望能对读者有所帮助。
一、线性结构1. 数组:数组是一种最基本的数据结构,它可以存储一组具有相同类型的数据。
数组的访问时间复杂度为O(1),但插入和删除的时间复杂度较高,为O(n)。
2. 链表:链表是由一系列的节点组成,每个节点包含数据以及指向下一个节点的指针。
链表的访问时间复杂度为O(n),但插入和删除的时间复杂度较低,为O(1)。
3. 栈:栈是一种具有后进先出(LIFO)特点的数据结构,只能在栈顶进行插入和删除操作。
栈的访问、插入、删除的时间复杂度均为O(1)。
4. 队列:队列是一种具有先进先出(FIFO)特点的数据结构,只能在队尾插入元素,在队头删除元素。
队列的访问、插入、删除的时间复杂度均为O(1)。
5. 双向链表:双向链表是在链表的基础上发展而来的数据结构,每个节点不仅包含指向下一个节点的指针,还包含指向上一个节点的指针。
双向链表的插入和删除操作时间复杂度为O(1)。
二、非线性结构1. 树:树是一种由节点和边组成的数据结构,每个节点可以有多个子节点。
树有很多种类型,如二叉树、AVL树、红黑树等。
树的遍历可以分为前序遍历、中序遍历、后序遍历和层序遍历等。
2. 图:图是一种由顶点和边组成的数据结构,每个顶点可以与其他顶点相连。
图可以分为有向图和无向图,常用的应用场景有社交网络和地图导航等。
图的遍历可以分为深度优先搜索和广度优先搜索等算法。
3. 堆:堆是一种特殊的树结构,具有以下特点:每个节点的值都大于等于(或小于等于)其子节点的值,且左子树和右子树都是堆。
堆常用来实现优先队列,常见的堆有二叉堆和斐波那契堆。
4. 哈希表:哈希表是一种根据关键码值(Key value)而直接进行访问的数据结构,通过将关键码值映射到表中的某个位置来实现访问的。
数据结构基础知识

复习提纲第一章数据构造概述根本概念与术语〔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章绪论内容提要:◆数据结构研究的内容。
针对非数值计算的程序设计问题,研究计算机的操作对象以及它们之间的关系和操作。
数据结构涵盖的内容:◆基本概念:数据、数据元素、数据对象、数据结构、数据类型、抽象数据类型。
数据——所有能被计算机识别、存储和处理的符号的集合。
数据元素——是数据的基本单位,具有完整确定的实际意义。
数据对象——具有相同性质的数据元素的集合,是数据的一个子集。
数据结构——是相互之间存在一种或多种特定关系的数据元素的集合,表示为:Data_Structure=(D, R)数据类型——是一个值的集合和定义在该值上的一组操作的总称。
抽象数据类型——由用户定义的一个数学模型与定义在该模型上的一组操作,它由基本的数据类型构成。
◆算法的定义及五个特征。
算法——是对特定问题求解步骤的一种描述,它是指令的有限序列,是一系列输入转换为输出的计算步骤。
算法的基本特性:输入、输出、有穷性、确定性、可行性◆算法设计要求。
①正确性、②可读性、③健壮性、④效率与低存储量需求◆算法分析。
时间复杂度、空间复杂度、稳定性学习重点:◆数据结构的“三要素”:逻辑结构、物理(存储)结构及在这种结构上所定义的操作(运算)。
◆用计算语句频度来估算算法的时间复杂度。
第二章线性表内容提要:◆线性表的逻辑结构定义,对线性表定义的操作。
线性表的定义:用数据元素的有限序列表示◆线性表的存储结构:顺序存储结构和链式存储结构。
顺序存储定义:把逻辑上相邻的数据元素存储在物理上相邻的存储单元中的存储结构。
链式存储结构: 其结点在存储器中的位置是随意的,即逻辑上相邻的数据元素在物理上不一定相邻。
通过指针来实现!◆线性表的操作在两种存储结构中的实现。
数据结构的基本运算:修改、插入、删除、查找、排序1)修改——通过数组的下标便可访问某个特定元素并修改之。
核心语句:V[i]=x;顺序表修改操作的时间效率是O(1)2) 插入——在线性表的第i个位置前插入一个元素实现步骤:①将第n至第i 位的元素向后移动一个位置;②将要插入的元素写到第i个位置;③表长加1。
数据结构知识点归纳总结(经典)

数据结构知识点归纳总结(经典)1. 简介数据结构是计算机科学中的一个重要概念,它用于组织和存储数据,以便于操作和管理。
数据结构能够帮助我们更有效地处理和分析大量的数据。
2. 常见的数据结构以下是一些常见的数据结构类型:2.1 数组(Array)数组是一种连续存储数据元素的数据结构,可以按照索引访问元素。
它具有固定大小,可以用于存储相同类型的元素。
2.2 链表(Linked List)链表是一种通过指针将元素连接起来的数据结构。
它可以包含不同类型的元素,并且具有动态分配内存的能力。
2.3 栈(Stack)栈是一种具有后进先出(LIFO)特性的数据结构。
它只能在栈顶进行插入和删除操作。
2.4 队列(Queue)队列是一种具有先进先出(FIFO)特性的数据结构。
它可以在队尾插入元素,在队头删除元素。
2.5 树(Tree)树是一种非线性的数据结构,它由节点和边构成。
树的一个节点可以有多个子节点,但每个节点只有一个父节点。
2.6 图(Graph)图是一种由节点和边构成的数据结构。
节点之间的边可以表示节点之间的关系。
2.7 哈希表(Hash Table)哈希表是一种以键-值对形式存储数据的数据结构。
它使用哈希函数将键映射到存储位置,以实现快速的查找操作。
3. 常见的数据结构操作数据结构不仅仅是存储数据,还包括对数据的操作。
以下是一些常见的数据结构操作:- 插入元素:向数据结构中添加新元素。
- 删除元素:从数据结构中删除指定元素。
- 查找元素:在数据结构中查找指定元素。
- 遍历元素:按照特定的顺序访问数据结构中的所有元素。
- 排序元素:对数据结构中的元素进行排序。
- 合并结构:将两个或多个数据结构合并成一个。
- 分割结构:将一个数据结构分割成两个或多个。
4. 数据结构的应用数据结构在计算机科学中有广泛的应用,包括但不限于以下领域:- 数据库系统- 图像处理- 网络通信- 操作系统- 算法设计和分析5. 总结数据结构是计算机科学中的重要概念,它为我们处理和管理大量数据提供了有效的方式。
计算机基础知识:数据结构基础知识

计算机基础知识:数据结构基础知识
1.数据结构
数据结构是指相互之间存在一定关系的数据元素的集合,即数据结构是一个二元组
Data Structure = (D, R),其中D是数据元素的集合,R是D上关系的集合。
按照视点的
不同,数据结构分为逻辑结构和存储结构。
2.数据结构的分类
(1)数据逻辑结构
数据的逻辑结构是指数据元素之间逻辑关系的整体。
根据数据元素之间逻辑关系的不同,数据结构分为四类:
1) 集合:数据元素之间就是“属于同一个集合”,除此之外,没有任何关系;
2) 线性结构:数据元素之间存在着一对一的线性关系;
3) 树结构:数据元素之间存在着一对多的层次关系;
4) 图结构:数据元素之间存在着多对多的任意关系。
注意:数据结构分为两类:线性结构和非线性结构。
(2)数据存储结构
数据的存储结构又称为物理结构,是数据及其逻辑结构在计算机中的表示。
通常有两种存储结构:顺序存储结构和链接存储结构。
顺序存储结构的基本思想是:用一组连续的存储单元依次存储数据元素,数据元素之间的逻辑关系是由元素的存储位置来表示的。
链接存储结构的基本思想是:用一组任意的存储单元存储数据元素,数据元素之间的逻辑关系是用指针来表示的。
注意:存储结构除了存储数据元素之外,必须存储数据元素之间的逻辑关系。
数据结构知识点总结归纳整理

第1章绪论1.1 数据结构的基本概念数据元是数据的基本单位,一个数据元素可由若干个数据项完成,数据项是构成数据元素的不可分割的最小单位。
例如,学生记录就是一个数据元素,它由学号、姓名、性别等数据项组成。
数据对象是具有相同性质的数据元素的集合,是数据的一个子集。
数据类型是一个值的集合和定义在此集合上一组操作的总称。
•原子类型:其值不可再分的数据类型•结构类型:其值可以再分解为若干成分(分量)的数据类型•抽象数据类型:抽象数据组织和与之相关的操作抽象数据类型(ADT)是指一个数学模型以及定义在该模型上的一组操作。
抽象数据类型的定义仅取决于它的一组逻辑特性,而与其在计算机内部如何表示和实现无关。
通常用(数据对象、数据关系、基本操作集)这样的三元组来表示。
#关键词:数据,数据元素,数据对象,数据类型,数据结构数据结构的三要素:1.逻辑结构是指数据元素之间的逻辑关系,即从逻辑关系上描述数据,独立于计算机。
分为线性结构和非线性结构,线性表、栈、队列属于线性结构,树、图、集合属于非线性结构。
2.存储结构是指数据结构在计算机中的表示(又称映像),也称物理结构,包括数据元素的表示和关系的表示,依赖于计算机语言,分为顺序存储(随机存取)、链式存储(无碎片)、索引存储(检索速度快)、散列存储(检索、增加、删除快)。
3.数据的运算:包括运算的定义和实现。
运算的定义是针对逻辑结构的,指出运算的功能;运算的实现是针对存储结构的,指出运算的具体操作步骤。
1.2 算法和算法评价算法是对特定问题求解步骤的一种描述,有五个特性:有穷性、确定性、可行性、输入、输出。
一个算法有零个或多个的输入,有一个或多个的输出。
时间复杂度是指该语句在算法中被重复执行的次数,不仅依赖于问题的规模n,也取决于待输入数据的性质。
一般指最坏情况下的时间复杂度。
空间复杂度定义为该算法所耗费的存储空间。
算法原地工作是指算法所需辅助空间是常量,即O(1)。
第2章线性表2.1 线性表的定义和基本操作线性表是具有相同数据类型的n个数据元素的有限序列。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 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))。