链表的应用(LRU缓存淘汰算法)
缓存:是一种提高数据读取性能的技术,在硬件设计、软件开发中都有着非常广泛的应用,比如常见的 CPU 缓存、数据库缓存、浏览器缓存等等。 LRU:缓存的大小有限,当缓存被用满时数据有的需要删除,有的需要保留,这里我们采用的策略是LRU(最近最少使用)缓存淘汰算法。 LRU缓存淘汰算法:我们维护一个有序单链表,越靠近链表尾部的结点是越早之前访问的。当有一个新的数据被访问时,我们从链表头开始顺序遍历链表。 1. 如果此数据之前已经被缓存在链表中了,我们遍历得到这个数据对应的结点,并将其从原来的位置删除,然后再插入到链表的头部。 2. 如果此数据没有在缓存链表中,又可以分为两种情况: 如果此时缓存未满,则将此结点直接插入到链表的头部; 如果此时缓存已满,则链表尾结点删除,将新的数据结点插入链表的头部。 来源: CSDN 作者: UCSD☁️ 链接: https://blog.csdn.net/qq_43536300/article/details/104573084