LRU缓存淘汰算法

如何基于链表实现 LRU 缓存淘汰算法?

1.如果此数据之前已经被缓存在链表中了,我们遍历得到这个数据对应的节点,并将其从原来的位置删除,然后再插入到链表头部;

2.如果此数据没有在缓存链表中,则又可以分为两张情况:

  • 如果此时缓存未满,则将此结点直接插入到链表的头部;
  • 如果此时缓存已满,则链表尾结点删除,将新的数据结点插入链表的头部