常见数据结构
倒排
跳跃表
平衡二叉树 AVL树
平衡二叉树子树高度差不超过1,为了保持高度平衡,添加和删除节点旋转较耗时。对于查询操作多的话AVL树优势还是比较大的。
红黑树 red-black tree
弱平衡二叉树,牺牲了部分平衡性以换取插入/删除操作时少量的旋转操作,增加和删除操作多的话red–black tree优势较大
- 节点是红色或黑色。
- 根是黑色。
- 所有叶子都是黑色(叶子是NIL节点)。
- 每个红色节点必须有两个黑色的子节点。(从每个叶子到根的所有路径上不能有两个连续的红色节点。)
- 从任一节点到其每个叶子的所有简单路径都包含相同数目的黑色节点。(黑高相等,意味着路径长度不会等于或大于2倍)