c - 当我在 splay 树中遍历时,现在哪个是根?

标签 c algorithm data-structures splay-tree

我有一个疑问,当我们使用 splay 树时,最后访问的元素会到达根节点。考虑我的树是

                     5
                    / \
                   3   7
                  / \ / \
                 2  4 6  8

当我执行中序遍历时,输出将是

     2 3 4 5 6 7 8 

所以这里最后访问的元素是8,我有疑问,所以8将是最后访问的节点,所以我们想移动8 是否作为根节点?

最佳答案

你的逻辑是正确的。但是展开的操作只在插入和查找时进行,而不会在遍历时进行。当您插入或搜索一个节点时,它会被移动到顶部(作为根节点),以便此后可以快速访问它。

关于c - 当我在 splay 树中遍历时,现在哪个是根?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27721197/

相关文章:

data-structures - 如何访问/修改 Haxe 列表中的特定元素?

python - Zigzag级序遍历

巧克力盛宴节目

c - 如何保证 64 位写入是原子的?

c - 陷入无限循环,不知道我做错了什么

javascript - 寻找一种算法来聚类 3d 点,围绕 2d 点

c++ - 将已采样的吉他弦更改为听起来像是被手稍微阻尼的算法

c - struct vop_vector 在哪里声明的?

python - 如何在字典中实现基本搜索

c - 堆栈代码无法运行