c++红黑树试题.pptVIP

  • 26
  • 0
  • 约3.36千字
  • 约 29页
  • 2017-03-08 发布于湖北
  • 举报
红黑树 可以干嘛? 是棵平衡的树: 保证从根到某个叶结点的简单路径一定不会超过从根到任何一条其它這样的路径的兩倍长 大致平衡?操作可以都在O(log2n)內完成。 操作 1. 搜索 2. 插入结点 3. 删除结点 4. 找最大或最小值 * 红黑树 每个结点都分配一个颜色: 红或黑 使用扩充二叉树: 沒有子女的地方都外上外结点, 又叫nil 规则: 1. 每个结点不是黑就是红 2. 根是黑色的 3. 每个叶结点 (external node, 或 nil)都是黑色 4. 如果一个结点是红的, 則它的子女都是黑的 5. 对每个结点來说, 从它到他的所有子孙叶子结点的路径上含有一样数目的黑色结点 * 黑高度 Black height: bh(x) = 从x到任何一个它的子孙叶子结点遇到的black 结点个数 (因为都一样, 所以可以是任何一个) 不包含结点 x自己 external 结点或nil(叶子结点)的black height为0 * 巨大的红黑树例子 * 26 17 41 47 nil 30 35 39 38 28 14 21 10 16 19 23 20 15 12 7 nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil 3 nil nil 1 2 1 1 1 1 2 3

文档评论(0)

1亿VIP精品文档

相关文档