基本的数据结构
1.栈
* 特点:
是一种特殊的线性表
栈数据结构的特点(先进后出) FILO:
栈结构是从一端存储元素,还是从这一段取出元素
入栈: 储存元素
出栈: 取出元素
举例: 弹夹 ,和往箱子里面放书
* 栈内存和栈结构的区别:
栈内存:方法运行时要进入栈内存,方法运行完时要弹栈消失,
* 应用场景: 常用于递归的实现,例如斐波那契数列;
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-BCHNVhdF-1595148190888)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\1566890046940.png)]
2.队列
* 特点:
队列和栈一样是一种线性表
不同的是,队列从字一端存储元素,再另一端取出元素
存储元素称为: 入队
取出元素称为: 出队
队列的特点先进先出(FIFO)
从一端
举例: 排队,传送带
* 应用场景:在多线程阻塞队列管理中非常试用
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ZRWioOJV-1595148190899)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\1566891389773.png)]
3.数组
### 特点:
数组结构的特点:插叙快,增删慢
### 为什么查询快:
应为数组在内存中的存储是连续的,
连续存储是指数组中的元素在内存中是相邻的
### 为什么增删慢:
应为数组的长度是固定的,每次进行增删的操作的时候都要重新创建一个新的数组
* 我们常说的数组的地址值,其实是指数组中首个元素的地址值,
应为存储是连续的那么我们根据索引能够计算出对应的地址值,来取到对应的元素
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-WFmYjCQw-1595148190920)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\1566892512857.png)]
4.链表
* 特点:
链表结构的特点:
链表是有很多的节点组成的
每个节点至少包含两个内容:
1.真正存储的数据
2.指向下一个节点的地址值
每个节点本身也有地址值
### 链表查询慢的原因:
因为链表在内存中的存储是离散存储的,
离散储存是指:链表的节点在内存的的存贮是没有规律的
如果要找到一个节点,就需要从前面一个一个找
### 链表增删快的原因
如果需要删除一个节点,只需要把上一个的节点的地址值直接指向下一个节点的地址值
在java中每个节点都是一个对象,如果说一个节点没有任何节点来指向和指向任何节点,
那么这个节点(对象)也就是一个垃圾对象,将会由垃圾回收器进行回收处理
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-93l5nJYb-1595148190939)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\1566893612119.png)]
5.树
* 介绍:
数也是一种数据结构
数是由很多节点组成的
二叉树: 每一个节点下面最多有两个子节点;
二叉查找树: 在二叉树的基础上增加了排序的功能
平衡二叉查找树: 在二插树的基础上增加了平衡的功能
平衡的标准是:最高的叶子节点和最低的叶子节点的高度差不超过1
红黑树: 是在平衡二叉查找树的基础上增加了自平衡的功能
* 树 --->二叉树--->二叉查找树---->平衡二叉查找树---->红黑树
* 红黑树可以通过红色节点和黑色节点尽可能的保证二叉树的平衡,从而来提高效率。
红黑树的约束:
1. 节点可以是红色的或者黑色的
2. 根节点是黑色的
3. 叶子节点(特指空节点)是黑色的
4. 每个红色节点的子节点都是黑色的
5. 任何一个节点到其每一个叶子节点的所有路径上黑色节点数相同
红黑树的特点:
速度特别快,趋近平衡树,查找叶子元素最少和最多次数不多于二倍
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-wgmdsriv-1595148190944)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\1566895492428.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-o3vAYz2P-1595148190949)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\1566896248106.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-eSuz4CrR-1595148190958)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\1566896550215.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-amr7rJbc-1595148190962)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\1566896852370.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-VV9utiI9-1595148190972)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\1566897069340.png)]