算法之链表的lru

先进先出

缓存是一种提高数据读取性能的技术 cpu缓存 数据库缓存 浏览器缓存

最少使用策略

最近最少使用策略

链表通过“指针”将一组零散的内存块串联起来使用。

单链表、双向链表、循环链表

头节点 尾节点(空地址)

维护一个有序单链表 越靠近链表尾部的节点是越早之前访问的
当有一个心的数据被访问的时候,我们从链表头部开始顺序遍历链表

  • 如果数据之前已经被缓存在链表当中了,我们遍历得到这个数据对应的结点,并将其从原来的位置删除,然后再插入到链表的头部
  • 没有缓存在链表中 缓存未满直接插入到链表的头部;已满,则删除链表尾部结点,将新的数据插入到链表的头部

还可以引入散列表记录每个数据的位置,将缓存访问的时间复杂度降到1