微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

是什么让这棵红/黑树变得沉重,它是否正确?

如何解决是什么让这棵红/黑树变得沉重,它是否正确?

所以我在使用红/黑树可视化器 (https://www.cs.usfca.edu/~galles/visualization/RedBlack.html) 时遇到了以下树 (按 10、40、25、35、30、45 的顺序插入)。我知道 AVL 树在两条最短路径和最长路径之间不能有高度差,但我很困惑,如果同样适用于红/黑树。有人能指出使这棵树有效的特定属性,以便我加深对这种数据结构的理解吗?

enter image description here

解决方法

红黑树的性质很简单:

  1. 每个节点要么正好有两个孩子,要么没有孩子。没有子节点的节点是叶节点,通常不会实际存储,因为它们没有标签。 (在您的图表中,它们甚至没有显示。)
  2. 根是黑色的。
  3. 所有叶节点都是黑色的。
  4. 红色节点的子节点是黑色的。
  5. 每片叶子的黑色深度都是一样的。 (黑色深度是指通往叶子的路径中黑色节点的数量。)

这些属性足以保证最深叶子的深度不超过最浅叶子的两倍。这比 AVL 树(其中两片叶子之间的深度差最多为 1)要宽松得多,但足以保证最大深度是树的大小的对数。而且它是一个维护成本更低的不变量。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。