algorithm - 伪LRU树算法

标签 algorithm binary-tree

很多关于伪 LRU 算法的描述都涉及使用二叉搜索树,并在每次访问树时将标志设置为“指向远离”您正在搜索的节点。

这导致 LRU 的合理近似。然而,从描述来看,所有被认为是 LRU 的节点似乎都是叶节点。是否有一种伪 LRU 算法可以处理仍然表现良好的静态树,同时确定非叶节点是合适的 LRU 候选者?

编辑: 我已经使用 HashMap 和链表实现了 LRU。我有兴趣了解使用伪 lru 树的性能影响(尤其是在并发读取时)。 这就是为什么我特别询问伪 lru 树算法的原因,但我应该更清楚地说明这一点。

最佳答案

您始终可以使用旋转红黑树将内部节点下推到叶节点。

在这样做的同时保持树的平衡可能很困难。但是您确实可以选择下推哪个子树,所以也许并非不可能...

关于algorithm - 伪LRU树算法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2759512/

相关文章:

algorithm - 找到只有 2 个随机点和凸起的圆心(x 和 y 位置)

algorithm - 条件下树遍历求和节点值的最优解

java - 如何正确调用 minimax 方法(使用 alpha beta 剪枝)

Python:替换全局变量

algorithm - 在 O(nloglogn) 最坏情况下对具有 O(logn) 个不同元素的 n 元素数组进行排序

algorithm - 无序集的哈希值?

c++ - 维护堆属性

swift - swift 结构二叉树

java - 二叉树中的最低公共(public)祖先

arrays - 使用常量内存在 O(n) 中对 BST 进行排序