使用单链表实现LRU缓存淘汰策略

LRU缓存淘汰策略

  • 什么是LRU缓存淘汰算法
    • 单链表实现LRU

什么是LRU缓存淘汰算法

常见的缓存淘汰策略有三种:先进先出策略FIFO(First In,First Out)、最少使用策略LFU(Least Frequently Used)、最近最少使用策略LRU(Least Recently Used)。本章介绍如何使用单链表实现LRU策略。

单链表实现LRU

假设有一个有序单链表,越靠近链表尾部的结点是越早之前访问的。当有一个新的数据被访问时,我们从链表头开始顺序遍历链表。

1.若该数据之前已经被在链表中了,先遍历得到这个数据对应的结点,然后将其从原来的位置删除,再插入到链表的头部。
2.如果此数据不在链表中,分以下两种情况:
A.如果此时缓存未满,则将此结点直接插入到链表的头部;
B.如果此时缓存已满,则链表尾结点删除,将新的数据结点插入链表的头部。

你可能感兴趣的:(数据结构)