推荐星级:
  • 1
  • 2
  • 3
  • 4
  • 5

LRUCache哈希表与双向链表实现

更新时间:2026-04-21 12:29:23 大小:13K 上传用户:江岚查看TA发布的资源 标签:lrucache 下载积分:2分 评价赚积分 (如何评价?) 打赏 收藏 评论(0) 举报

资料介绍

LRULeast Recently Used)缓存机制是一种常用的缓存淘汰策略,其核心思想是当缓存空间满时,优先淘汰最近最少使用的元素。以下是基于哈希表和双向链表实现的LRUCache代码,具有O(1)时间复杂度的getput操作:

class DLinkedNode:

def __init__(self, key=0, value=0):

self.key = key

self.value = value

self.prev = None

self.next = None

class LRUCache:

def __init__(self, capacity: int):

self.cache = dict()

# 使用伪头部和伪尾部节点,避免空指针判断

self.head = DLinkedNode()

self.tail = DLinkedNode()

self.head.next = self.tail

self.tail.prev = self.head

self.capacity = capacity

self.size = 0

def get(self, key: int) -> int:

if key not in self.cache:

return -1

# 如果key存在,通过哈希表定位,移到头部

node = self.cache[key]

self.moveToHead(node)

return node.value

def put(self, key: int, value: int) -> None:

if key not in self.cache:

# 如果key不存在,创建新节点


部分文件列表

文件名 大小
1776745402LRUCache哈希表与双向链表实现.docx 13K

【关注B站账户领20积分】

全部评论(0)

暂无评论

上传资源 上传优质资源有赏金

  • 打赏
  • 30日榜单

推荐下载