绳子有平衡条件吗?

问题描述 投票:0回答:2

我刚刚读了绳子文章,并没有找到绳子的任何平衡条件。这是否意味着任何叶子中带有短字符串的二叉树都是绳子?

data-structures
2个回答
5
投票

这是否意味着任何叶子中具有短字符串的二叉树都是绳子?

是的。根据实施情况,可以有平衡策略,但这绝不是必要的。

通常,使用绳索的应用程序仍然期望相对较少的节点,因此无论是在实施工作量方面,还是在它所带来的(小)运行时开销方面,采用平衡策略的开销都是不值得的。


0
投票

最初的绳索论文确实提到了基于斐波那契数列的再平衡策略。 “绳索:绳索的替代品”,作者:Boehm、Atkinson 和 Plass,载于《软件 — 实践与经验》,第 1 卷。 25(12), 1315–1330(1995 年 12 月)

我同意许多应用程序只使用几个节点,这意味着它们可以获得使用绳索的好处,而不必担心重新平衡。但是,如果在库中提供 Rope,它肯定需要保持树平衡,因为它不知道应用程序需求。请参阅 Wintellect 的 PowerCollection 库中的 BigList 实现以供参考:

https://github.com/timdetering/Wintellect.PowerCollections/blob/master/Source/PowerCollections/BigList.cs

© www.soinside.com 2019 - 2024. All rights reserved.