RedBlack 和 AVL 树 C++

RedBlack and AVL tree c++

我想了解使用 C++ 实现红黑树和 AVL 树。我查看了一些有关它们的网站,但其中大多数都很复杂且难以理解。你能给我推荐一些资源吗?

首先阅读两棵树的基本属性。您不必将自己局限于一种编程语言。如果你了解这些特性,那么你可以用任何语言自己实现它。

红黑树的性质:

  1. 节点为红色或黑色。
  2. 根是黑色的。这条规则有时会被省略。自根 总是可以从红色变为黑色,但不一定副 反之,这条规则对分析影响不大。
  3. 所有叶子 (NIL) 都是黑色的。
  4. 如果一个节点是红色的,那么它的两个子节点都是黑色的。
  5. 从给定节点到其任何后代 NIL 节点的每条路径 包含相同数量的黑色节点。一些定义:从根节点到一个节点的黑节点个数为 节点的黑色深度;所有黑色节点的统一数量 从根到叶子的路径称为 红黑树.

红黑树C++代码: http://www.sanfoundry.com/cpp-program-implement-red-black-tree/

AVL 树教程: https://www.youtube.com/watch?v=rwzuze_tTwQ

AVL 树 C++ 代码: https://tfetimes.com/c-avl-tree/