LRU页面置换算法代码
时间: 2023-11-12 07:31:18 浏览: 118
以下是LRU页面置换算法的Python代码实现:
```python
class LRUCache:
def __init__(self, capacity):
self.capacity = capacity
self.cache = {}
self.keys = []
def get(self, key):
if key in self.cache:
self.keys.remove(key)
self.keys.append(key)
return self.cache[key]
return -1
def put(self, key, value):
if key in self.cache:
self.keys.remove(key)
elif len(self.cache) == self.capacity:
del self.cache[self.keys[0]]
del self.keys[0]
self.keys.append(key)
self.cache[key] = value
```
在这个实现中,我们使用了一个字典来缓存页面和它们的值,并使用一个列表来跟踪页面的访问顺序。当一个页面被访问时,我们将它移动到列表的末尾。当缓存满时,我们从字典中删除列表的第一个页面并从列表中删除,以便为新页面腾出空间。
阅读全文