Example #1
0
    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)
Example #2
0
 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
Example #3
0
 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
Example #4
0
 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
Example #5
0
	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)