标签:单向链表 个数 通过 动作 改变 pre 自己 元素 红黑树
集合中常用的数据结构
一)、栈
栈的特点:先进后出
二)、队列
队列的特点:先进先出
三)、数组
数组的特点:查询快,增删慢
查询快的原因:数组的地址连续,通过地址可以找到数组,通过索引可以找到元素。
如:一个班的学生按学号排列在一起,你想找一个同学,通过学号你很快就能找到
增删慢的原因:增删需要做3个动作
1. 在堆中新建一个数组,用于存储删除或修改后的数组元素
2. 将原数组的变量指向新的数组
3. 垃圾回收旧的数组
四)、链表
链表的特点:查询慢,增删快
查询慢的原因: 链表的地址不连续,每一次查询都要从头开始
如:一个班的同学不按学号排列在一起,你要找一个叫小花的学生,你的从头开始 挨个问
增删快的原因: 增删一个原素,你只需要改变节点前后地址的指向即可
链表的分类:
1. 单向链表
存储元素和取出元素的顺序可能不一致
2. 双向链表
专门有一条链记录元素顺序,是一个有集合
链表节点的组成:
1. 链表的节点有三部分组成
2. 自己的地址 数据 下一个节点的地址
五)、红黑树
树的分类:
1. 二叉树
特点:分支不超过两个
2. 排序树/查找树
特点:左边小,右边大,查询速度快。
3. 平衡树
特点:左孩子数量 = 右孩子数量
4. 不平衡树
特点:左孩子数量 != 右孩子数量
5. 红黑树
特点:趋近于平衡树,查询速度快,叶子节点的最大查询次数和最小查询次数不能超过两倍
六)、 红黑树的约束(构造)
1. 节点可以是红色或黑色
2. 根节点是黑色
3. 叶子节点是黑色
4. 红色节点到子节点是黑色的
5. 任何一个节点到每一个叶子节点的所有路径黑色节点数相同
标签:单向链表 个数 通过 动作 改变 pre 自己 元素 红黑树
原文地址:https://www.cnblogs.com/Auge/p/11609885.html