Ejemplo n.º 1
0
 def test_double_slicing(self):
     node1, node2, node3 = Node(1), Node(2), Node(3)
     node1.next, node2.next, node3.next = node2, node3, None
     node1.prev, node2.prev, node3.prev = None, node1, node2
     self.double.head = node1
     self.double.tail = node3
     self.assertEqual(self.double[0].value, 1)
     self.assertEqual(self.double[1].value, 2)
     self.assertEqual(self.double[2].value, 3)
     self.assertRaises(IndexError, lambda val: self.double[val], 3)
Ejemplo n.º 2
0
 def test_iteration_double(self):
     node1, node2, node3 = Node(1), Node(2), Node(3)
     node1.next, node2.next, node3.next = node2, node3, None
     node1.prev, node2.prev, node3.prev = None, node1, node2
     self.double.head = node1
     self.double.tail = node3
     # test __iter__
     self.assertEqual([str(i) for i in self.double], [str(i) for i in range(1, 4)])
     # test iterating over reversed
     self.assertEqual([str(i) for i in reversed(self.double)], [str(i) for i in range(3, 0, -1)])
Ejemplo n.º 3
0
def remove_node(node: LinkedList) -> None:
    """
    Removes given node from linked list

    :param node:
    :return:
    """

    if node and node.next:
        node.value = node.next.value
        node.next = node.next.next
Ejemplo n.º 4
0
    def test_remove_node(self):

        head = expect = self.gen_list_from_array([1, 2, 3])
        node = Node(0)
        child = head.next
        head.next = node
        node.next = child
        self.check(head, self.gen_list_from_array([1, 0, 2, 3]))
        remove_node(node)
        self.check(head, expect)

        del node
        del head
        del expect

        head = expect = self.gen_list_from_array([1])
        node = Node(10)
        head.next = node
        self.check(head, self.gen_list_from_array([1, 10]))
        remove_node(node)
        self.check(head, expect)
 def push(self, newNode):
     temp = Node(newNode)
     temp.next = self.head
     self.head = temp