一、基础知识
数据:能够被计算机识别、存储、处理的符号集合。
数据对象:是性质相同数据元素的集合,是数据集合中的一个子集。
数据结构:数据元素与数据元素之间的存在的关系。
数据元素:是数据的基本单位。一个数据可以由若干个数据元素组层。
二、数据结构逻辑分类
线性结构:数组、栈、队列、链表
非线性结构:树、图
集合:哈希表、堆
三、数组
概念:数组是用来存放同一种数据类型的数据结构。
特点:查询快、删除慢、增加慢
四、栈
概念:是一种只能在一端进行插入和删除操作的特殊线性表。它按照先进后出的原则存储数据,先进入的数据被压入栈底,最后的数据在栈顶,需要读数据的时候从栈顶开始弹出数据。(先进后出)
五、队列
1、概念:队列是一种特殊的线性表,特殊之处在于它只允许在表的前端进行删除操作,而在表的后端进行插入操作,进行插入操作的端称为队尾,进行删除操作的端称为队头。队列中没有元素时,称为空队列。(先进先出)
2、分类
2.1、单向队列:只能在一端插入数据,另一端删除数据。
2.2、双向队列:双端队列就是一个两端都是结尾或者开头的队列
2.3、优先级队列:数据项按照关键字进行排序,关键字最小(或者最大)的数据项往往在队列的最前面,而数据项在插入的时候都会插入到合适的位置以确保队列的有序。
六、链表
1、概念:通常由一连串节点组成,每个节点包含任意的实例数据(data fields)和一或两个用来指向上一个/或下一个节点的位置的链接。
2、特点:删除快、新增快、查询慢
3、分类
3.1、单向链表:一个单链表的节点分为两个部分,第一个部分保存或者显示关于节点的信息,另一个部分存储下一个节点的地址,最后一个节点存储地址的部分指向空值。
3.2、双向链表:双向链表存储前一个节点信息与后一个节点信息。
3.3、双端链表:等同于单链表,在链表头增加一个对链尾的引用
3.4、有序链表:数据按照一定的关键因素排序
七、图
八、堆
九、哈希表
1、概念:Hash表是一种根据关键字值(key - value)而直接进行访问的数据结构。它基于数组,通过把关键字映射到数组的某个下标来加快查找速度。
十、树
1、概念:它是由n(n>0)个有限节点通过连接它们的边组成一个具有层次关系的集合
2、分类
2.1、二叉树:最多有两个子节点;某个节点的左子树每个节点都比该节点的关键字值小,右子树的每个节点都比该节点的关键字值大
2.2、红黑树
2.3、2-3-4树
\