【Java基础】7.数据结构
7.1 栈
特点:先进后出,后进先出
7.2 队列
特点:先进先出
7.3 数组
特点:查询快,增删慢
查询快:地址连续,直接索引
增删慢:一旦创建,占内存恒定。若更改,需要重新创建。
7.4 链表
特点:查询慢,增删快
查询慢:地址不连续,每次必须从头开始查询
增删快:链式结构,增加/删除一个元素,整体结构没有影响
单向链表:一条链,不能保证元素顺序。
双向链表:两条子链,有一条子链专门用于记录元素顺序
7.5 红黑树
左子树序号小,右子树序号大。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-IaFJerbY-1588673183151)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20200221193349506.png)]
平衡树:左孩子数量=右孩子数量
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-p3Me7FF8-1588673183158)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20200221193412455.png)]
红黑树:
特点:趋近于平衡树,查询的速度非常快
查询叶子节点时,最大次数和最小次数不能超过2倍
约束:
-
节点可以是红色或者黑色的
-
根节点是黑色的
-
叶子节点是黑色的
-
每个红色节点的子节点都是黑色的
-
任何一个节点到每个叶子节点的所有路径上黑色节点的数量相同
-
每个红色节点的子节点都是黑色的
-
任何一个节点到每个叶子节点的所有路径上黑色节点的数量相同