前言
这是第一次开始写博客,目的是为了记录自己复习数据结构的情况。从这开始,会陆续将数据结构的知识整理一遍。
数据结构简述
数据: 数据是信息的载体,是计算机程序加工的“原材料”。
数据元素: 是数据的基本单位。一个数据元素可以由若干数据项组成。
数据项: 是组成数据元素的最小单位。
例如:一条学生信息就是一个数据元素,学生学号、姓名等都是数据项。
数据结构: 数据结构指的是数据之间的相互关系,即数据的组织形式。
数据结构包括三个方面的内容: 数据的逻辑结构、数据的存储结构、数据的运算。
- 数据的逻辑结构
- 线性结构
●线性结构是非空集;
●线性结构有且仅有一个开始节点和一个终端节点;
●线性结构的所有节点最多只有一个直接前驱和一个直接后继。
- 非线性结构
●非线性结构是非空集;
●非性结构的一个节点可能有多个直接前驱和直接后继。
- 线性结构
在实际应用中,数组、广义表、树结构和图结构等都是非线性结构。
类、结构体、枚举、数组是四种复合类型
- 数据的存储结构
- 顺序存储结构
●顺序存储方式就是在一块连续的存储区域一个接着一个地存放数据;
●把逻辑上相邻的节点存储在物理位置上相邻的存储单元里;
●节点间的逻辑关系由存储单元的邻接关系体现。
- 顺序存储结构
一般采用数组来描述。
2. 链式存储结构
●节点间的逻辑关系由附加的指针域(引用)表示;
●指针域指向下一节点的存储位置。
3. 索引存储
4. 散列存储
- 数据的运算
最常用的运算:增、删、改、查。
注意: 同一逻辑结构可以有不同的存储结构。例如,如果线性表采用顺序存储方式,这种数据结构就是顺序表;如果线性表采用连式存储方式,这种数据结构就是链表;如果线性表采用散列存储方式,这种数据结构就是散列表;
常用的数据结构
- 数组
- 链表
- 栈
- 队列
- 树
- 图
- 堆
- 散列表
后续将分模块,详细整理这些数据结构的具体操作实现。