1.数据结构
常见的有:栈 队列 数组 链表 红黑树
栈 | 先进后出 |
队列 | 先进先出 |
数组 | 查询快 增删慢 |
链表 | 查询慢 增删快 |
红黑树 | 红黑色 二叉树 |
2.栈 先进后出
3.队列 先进先出
4.数组
查询快:因为数组是连续的 通过首地址可以找到数组 通过索引快速查找某一元素
增删慢:数组的长度是固定的 想要删除或者增加一个元素 必须创建一个新数组 就得把源数组的数据复制过来
5.链表
查询慢:链表中地址不是连续的 每次查询元素 都必须从头开始查询
增删块:链表结构增加或者删除一个元素 对链表的整体结构没有影响
单向链表 只有一条链子 不能保证元素的顺序(存储和取出元素的顺便有可能不同)
双向链表 有两条链子 有一条是专门记录元素顺序的 所有它是有序的集合
6.红黑树
趋近于平衡树 查询的速度非常快 查询叶子节点的最大次数和最小次数不能超过2倍
节点只有两种颜色 可以是黑色或者红色
根节点是黑色的 叶子节点也是黑色的 每个红色的节点的子节点都是黑色的
任何一个节点到其每个叶子结点的所有路径上黑色接点的数量相同