Adds the given node at the tail of the list and shifting it to proper position
(self, node: DoubleLinkedListNode[T, U])
| 112 | return ",\n ".join(rep) |
| 113 | |
| 114 | def add(self, node: DoubleLinkedListNode[T, U]) -> None: |
| 115 | """ |
| 116 | Adds the given node at the tail of the list and shifting it to proper position |
| 117 | """ |
| 118 | |
| 119 | previous = self.rear.prev |
| 120 | |
| 121 | # All nodes other than self.head are guaranteed to have non-None previous |
| 122 | assert previous is not None |
| 123 | |
| 124 | previous.next = node |
| 125 | node.prev = previous |
| 126 | self.rear.prev = node |
| 127 | node.next = self.rear |
| 128 | node.freq += 1 |
| 129 | self._position_node(node) |
| 130 | |
| 131 | def _position_node(self, node: DoubleLinkedListNode[T, U]) -> None: |
| 132 | """ |
no test coverage detected