最近最久未使用页面置换算法代码
时间: 2024-02-03 19:15:54 浏览: 166
FIFO&LRU——先进先出 最久未使用 页面置换算法
下面是一个简单的最近最久未使用页面置换算法代码实现:
```python
class LRUCache:
def __init__(self, capacity):
self.capacity = capacity
self.cache = {}
self.lru_queue = []
def get(self, key):
if key in self.cache:
self.lru_queue.remove(key)
self.lru_queue.append(key)
return self.cache[key]
else:
return -1
def put(self, key, value):
if key in self.cache:
self.lru_queue.remove(key)
elif len(self.cache) >= self.capacity:
lru_key = self.lru_queue.pop(0)
del self.cache[lru_key]
self.cache[key] = value
self.lru_queue.append(key)
```
这个实现使用了一个哈希表和一个队列来保持缓存数据,并且在访问或插入数据时更新队列。当缓存已满并且需要插入新的数据时,它会删除队列中最久未使用的数据。
阅读全文