在使用伸展树的绳索数据结构的标准实现中,节点将根据测量每个节点从字符串开始的位置的排名统计量进行排序,因此通常在二叉搜索树中找到的键将是不相关的,将他们不是吗?
我问是因为下图中显示的键(感谢维基百科!)是字母,一旦节点数量超过所选字母的长度,它们可能会变得不唯一。使用整数或完全避免使用键不是更好吗?
另外,谁能指出我在每次操作后重新计算排名统计的逻辑的良好实现?
据推测,如果拆分的索引位于附加到特定节点的子字符串中,例如,在上面节点 E 上的“Hel”和“llo_”之间,您将从 E 中删除子字符串,将其拆分并重新附加为两个孩子E. 对吗?
最后,经过一定次数的这样的操作,我想这棵树的叶子可能和字母一样多。跟踪它并根据需要修剪树(通过组合子字符串)的最佳方法是什么?
谢谢!