def test_delete_node_after_head(self): head = Node(6) after_node = Node(100) node_to_delete = Node(8528) head.next = node_to_delete node_to_delete.prev = head node_to_delete.next = after_node after_node.prev = node_to_delete self.helper.helper_delete_node_after_head(self.linked_list, head, node_to_delete) self.assertEqual(after_node.prev, head)
def push(self, elem): node = Node(elem) if not self.tail: self.tail = node self.tail.next = node node.prev = self.tail self.tail = node
def append(self, value): """Append a value to the end of a double link list.""" current_node = self.head if current_node is not None: while current_node.next_node is not None: current_node = current_node.next_node new_node = Node(value) current_node.next_node = new_node new_node.prev = current_node else: new_node = Node(value) current_node = new_node self.head = current_node
def push (self, value): new_node = Node(value) curr_node = self.head.next while curr_node != self.tail: if getattr(curr_node.value, self.key_name) >= getattr(new_node.value, self.key_name): prev_node = curr_node.prev prev_node.next = new_node new_node.prev = prev_node new_node.next = curr_node curr_node.prev = new_node self.size += 1 return curr_node = curr_node.next Queue.add_to_tail(self, value)