【发布时间】:2016-10-15 22:51:26
【问题描述】:
我在 wikipedia 上阅读了有关绳索数据结构的内容,对描述感到有些困惑。
维基链接:http://en.wikipedia.org/wiki/Rope_(data_structure)
说明
绳索是一棵二叉树,其叶节点包含一个短字符串。
每个节点的权重值等于其字符串的长度加上其左子树中所有叶子节点的权重之和,即一个节点的权重为非叶子节点在其左子树中的字符串总长度节点,或叶节点自身的字符串长度。
因此,一个有两个孩子的节点将整个字符串分成两部分:左子树存储字符串的第一部分。右子树存储第二部分,其权重是左子树的权重与其包含的字符串长度之和。
下图是维基百科的例子之一。
.
我无法查看上图中的数字的来源。
每个节点的权重值等于其字符串的长度加上其左子树中所有叶子节点的权重之和
- C = 6 + 0(E + C 的空字符串长度)?
- B = 6 + 3 + 0 + 0(E + F + C 的空字符串长度 + B 的空字符串长度)?
- 这不可能,为什么是 A 22? (6+6+9 = 21?6+6+3+9 = 24?)
我很确定我错过了什么。有人可以帮我清理一下吗?
谢谢。
【问题讨论】:
标签: data-structures binary-tree