1. 线性表
线性表是一类最简单、最常用的数据结构 。简单来说,一个线性表是n个元素的有限序列,其中n≥0,通常表示为(a1,a2,...,an) 。其特点是,在非空的数据元素集合中:
(1)存在唯一的一个称作“第一个”的元素
(2)存在唯一的一个称作“最后一个”的元素
(3)除第一个元素外,集合中的每个元素均只有一个直接前驱
(4)除最后一个元素外,集合中的每个元素均只有一个直接后继

文章插图

文章插图
最基本的节点结构

文章插图
在单向链表中插入结点时,指针的变化情况

文章插图
在单向链表中删除结点时,指针的变化情况

文章插图
在双向链表插入结点时的指针变化情况

文章插图
在双向链表删除结点时的指针变化情况
2. 栈和队列
栈是只能通过访问它的一端来实现数据存储和检索的一种线性数据结构 。即,栈的修改是按照先进后出(FILO)的原则进行的 。

文章插图
栈的5种基本运算

文章插图
两个栈共享空间示意图

文章插图
链栈示意图

文章插图
队列的头、尾指针与队列中元素之间的关系

文章插图
循环队列的头、尾指针示意图

文章插图
链队列示意图

文章插图
串值的链表存储方式
3. 广义表
广义表是线性表的推广,是由零个或多个单元素或子表所组成的有限序列 。
-LS=(a1,a2,...,an)
其中ai(1≤i≤n)既可以是单个元素,又可以是广义表,分别称为原子和值表 。

文章插图
广义表的链表结点结构

文章插图
广义表的存储结构示意图
4. 树

文章插图
树的定义
注意:树的定义是递归的,即一个树由若干的子树构成,而子树又由更小的子树构成 。
树的遍历操作是树中其他运算的重要基础 。

文章插图
几种二叉树
很容易区分:与满二叉树结点一一对应的即为完全二叉树,否则是非完全二叉树 。

文章插图
二叉树的顺序储存结构
显然顺序存储结构对于完全二叉树而言,既简单又节省空间;但对一般的二叉树则不适用 。

文章插图
二叉树的链表存储结构

文章插图
二叉树转化为树和森林
5. 图
图是一种比数更复杂的数据结构

文章插图
有向图和无向图
【常用数据结构】
推荐阅读
- 春砂仁和什么起泡茶,春砂仁有几种常用吃法
- Mysql索引数据结构有多个选择,为什么一定要是B+树?
- 蓝天白云太阳向日葵图片,向日葵般送几朵
- 常用开源协议对比
- 常用的绘图软件有哪些
- 常用的报表软件有哪些
- 常用工具软件选择的三个要素
- 代代花禁忌人群,代代花的禁忌人群
- 硬核资源!阿里内部强推IntelliJ IDEA 中的常用配置,还不赶紧收藏
- Linux上,最常用的十条命令
