Double Linked List Node built specifically for LFU Cache >>> node = DoubleLinkedListNode(1,1) >>> node Node: key: 1, val: 1, freq: 0, has next: False, has prev: False
| 8 | |
| 9 | |
| 10 | class DoubleLinkedListNode[T, U]: |
| 11 | """ |
| 12 | Double Linked List Node built specifically for LFU Cache |
| 13 | |
| 14 | >>> node = DoubleLinkedListNode(1,1) |
| 15 | >>> node |
| 16 | Node: key: 1, val: 1, freq: 0, has next: False, has prev: False |
| 17 | """ |
| 18 | |
| 19 | def __init__(self, key: T | None, val: U | None): |
| 20 | self.key = key |
| 21 | self.val = val |
| 22 | self.freq: int = 0 |
| 23 | self.next: DoubleLinkedListNode[T, U] | None = None |
| 24 | self.prev: DoubleLinkedListNode[T, U] | None = None |
| 25 | |
| 26 | def __repr__(self) -> str: |
| 27 | return ( |
| 28 | f"Node: key: {self.key}, val: {self.val}, freq: {self.freq}, " |
| 29 | f"has next: {self.next is not None}, has prev: {self.prev is not None}" |
| 30 | ) |
| 31 | |
| 32 | |
| 33 | class DoubleLinkedList[T, U]: |