AVL树,红黑树,B树,B+树,Trie树都分别应用在哪些现实场景中?
参考知乎知友的回答AVL树,红黑树,B树,B+树,Trie树现实应用场景
- AVL树:windows对进程地址空间的管理用到了AVL树。
-
红黑树:维护AVL树这种高度平衡所付出的代价比从中获得的效率收益大,故而实际的应用不多,更多的地方是用追求局部而不是非常严格整体平衡的红黑树。红黑树的应用比较广泛,如:
1) 著名的linux进程调度Completely Fair Scheduler,用红黑树管理进程控制块
2)epoll在内核中的实现,用红黑树管理事件块
3)nginx中,用红黑树管理timer等
4)Java的TreeMap、TreeSet实现 - B和B+树:主要用在文件系统以及数据库中做索引等,比如Mysql:B-Tree Index in MySql
- trie 树:一个典型应用是前缀匹配,比如在我们输入时,搜索引擎会给予提示。
树的基本结构有什么区别呢?
- 通过树、二叉树、二叉查找树、AVL树、红黑树的定义,就可以对以上几种树的结构有基本的了解。如果想对红黑树有深入了解,可以参考:《红黑树概念、红黑树的插入及旋转操作详细解读》、《红黑树的移除节点操作》。
- B-树和B+树最经典应用就是MySQL的索引,下面通过MySQL索引背后的数据结构及算法原理,对B+树有更深入的了解,同时如果想对MySQL的索引优化有所了解,也可以仔细读上面的文章。
- trie树