RedBlack和AVL树c ++

时间:2016-03-25 14:00:17

标签: c++ implementation avl-tree red-black-tree

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

1 个答案:

答案 0 :(得分:0)

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

红黑树的属性:

  1. 节点为红色或黑色。
  2. 根是黑色的。有时会省略此规则。自从根 总是可以从红色变为黑色,但不一定是副 反之亦然,这条规则对分析影响不大。
  3. 所有叶子(NIL)都是黑色。
  4. 如果节点为红色,则其子节点均为黑色。
  5. 从给定节点到其任何后代NIL节点的每条路径 包含相同数量的黑色节点。一些定义:从根到节点的黑节点数 节点的黑色深度;所有黑色节点的统一数量 从根到叶子的路径称为黑色的高度 红黑树。
  6. 红黑树C ++代码: http://www.sanfoundry.com/cpp-program-implement-red-black-tree/

    AVL Tree Tutorial: https://www.youtube.com/watch?v=rwzuze_tTwQ

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