提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
数据结构-线性结构与非线性结构
线性结构
介绍
- 线性结构是最常用的数据结构,是一个有序数据的集合,特点是数据元素一对一的线性关系
- 比如数组和链表的前一个元素和后一个元素都是唯一的
线性结构的3种存储结构
-
顺序存储结构
- 最典型的为数组,顺序存储的线性表称为顺序表
- 特点:顺序表中相邻元素的内存地址是线性连续的
-
链式存储结构
- 最典型的是链表,链式存储的线性表称为链表
- 特点:链表中的存储元素虽然是线性,但是相邻元素的内存地址不一定是连续的
引申问题:为什么链表比数组能更好的利用碎片内存?
- 因为链表的相邻元素内存地址不一定是连续的;而数组的相邻元素内存地址是连续的,所以必须占用连续、整块的内存
常见的线性结构
- 数组
- 链表
- 队列
- 栈
非线性结构
介绍
- 数据元素之间不存在1对1的线性关系,一般是1对多的数据结构;一个节点元素可能有多个前驱或后驱
- 无序的多维数组,比如二维数组、广义表、树、图等
常见的非线性结构
- 二维数组
- 多维数组
- 广义表
- 树
- 图