推荐的实现方式是使用双链表来记录访问顺序,并使用散列图将每个键映射到链表中包含相应条目的节点。
《面向Geeks的编程采访和Geeks元素》中的解决方案表示,当访问缓存条目时,应将其对应的节点移至链接列表的FRONT。使用此设置,最近最少使用的将是链表中的最后一个节点。对我来说,FIFO的语义似乎更直观,这样,每次有访问权限时,我们都会在链表的末尾附加一个节点,而链表最前面的节点是最近最少使用的节点。我的理解是,如果我们使用双向链表同时保持对它的头和尾的引用,那么EPI建议的方法和对我来说更直观的方法都会产生相同的性能。有谁知道为什么EPI和GFG会推荐LIFO代替?