@@ -30,29 +30,36 @@ class DoubleLinkedList:
30
30
31
31
>>> dll: DoubleLinkedList = DoubleLinkedList()
32
32
>>> dll
33
- DoubleLinkedList: ,
33
+ DoubleLinkedList,
34
34
Node: key: None, val: None, has next: True, has prev: False,
35
35
Node: key: None, val: None, has next: False, has prev: True
36
36
37
- >>> new_node = DoubleLinkedListNode(1,1)
38
- >>> new_node
39
- Node: key: 1, val: 1, has next: False, has prev: False
37
+ >>> first_node = DoubleLinkedListNode(1,10)
38
+ >>> first_node
39
+ Node: key: 1, val: 10, has next: False, has prev: False
40
+
40
41
41
- >>> dll.add(new_node )
42
+ >>> dll.add(first_node )
42
43
>>> dll
43
- DoubleLinkedList: ,
44
+ DoubleLinkedList,
44
45
Node: key: None, val: None, has next: True, has prev: False,
45
- Node: key: 1, val: 1 , has next: True, has prev: True,
46
+ Node: key: 1, val: 10 , has next: True, has prev: True,
46
47
Node: key: None, val: None, has next: False, has prev: True
47
48
48
49
>>> # node is mutated
49
- >>> new_node
50
- Node: key: 1, val: 1 , has next: True, has prev: True
50
+ >>> first_node
51
+ Node: key: 1, val: 10 , has next: True, has prev: True
51
52
52
- >>> removed_node = dll.remove(new_node)
53
+ >>> second_node = DoubleLinkedListNode(2,20)
54
+ >>> second_node
55
+ Node: key: 2, val: 20, has next: False, has prev: False
56
+
57
+ >>> dll.add(second_node)
53
58
>>> dll
54
- DoubleLinkedList: ,
59
+ DoubleLinkedList,
55
60
Node: key: None, val: None, has next: True, has prev: False,
61
+ Node: key: 1, val: 10, has next: True, has prev: True,
62
+ Node: key: 2, val: 20, has next: True, has prev: True,
56
63
Node: key: None, val: None, has next: False, has prev: True
57
64
58
65
>>> removed_node = dll.remove(first_node)
@@ -90,7 +97,7 @@ def __init__(self):
90
97
self .head .next , self .rear .prev = self .rear , self .head
91
98
92
99
def __repr__ (self ) -> str :
93
- rep = ["DoubleLinkedList: " ]
100
+ rep = ["DoubleLinkedList" ]
94
101
node = self .head
95
102
while node .next is not None :
96
103
rep .append (str (node ))
@@ -141,8 +148,28 @@ class LRUCache:
141
148
>>> cache.get(1)
142
149
1
143
150
151
+ >>> cache.list
152
+ DoubleLinkedList,
153
+ Node: key: None, val: None, has next: True, has prev: False,
154
+ Node: key: 2, val: 2, has next: True, has prev: True,
155
+ Node: key: 1, val: 1, has next: True, has prev: True,
156
+ Node: key: None, val: None, has next: False, has prev: True
157
+
158
+ >>> cache.cache
159
+ {1: Node: key: 1, val: 1, has next: True, has prev: True, 2: Node: key: 2, val: 2, has next: True, has prev: True}
160
+
144
161
>>> cache.set(3, 3)
145
162
163
+ >>> cache.list
164
+ DoubleLinkedList,
165
+ Node: key: None, val: None, has next: True, has prev: False,
166
+ Node: key: 1, val: 1, has next: True, has prev: True,
167
+ Node: key: 3, val: 3, has next: True, has prev: True,
168
+ Node: key: None, val: None, has next: False, has prev: True
169
+
170
+ >>> cache.cache
171
+ {1: Node: key: 1, val: 1, has next: True, has prev: True, 3: Node: key: 3, val: 3, has next: True, has prev: True}
172
+
146
173
>>> cache.get(2) is None
147
174
True
148
175
0 commit comments