def test_insert(self): self.assertEqual(insert(Node(1, Node(2, None)), 3, 1), Node(1, Node(3, Node(2, None)))) self.assertEqual(insert(Node(1, Node(2, None)), 50, 0), Node(50, Node(1, Node(2, None)))) self.assertRaises(IndexError, insert, None, 2, 7) self.assertEqual(insert(Node(2, None), 2, 1), Node(2, Node(2, None)))
def push(self, item): """Pushes item to the Stack Args: self (StackLinked): Linked List Stack """ self.top = linked_list.insert(self.top, item, self.num_items) self.num_items += 1
def test_linked_list2(self): lst = None for i in range(3): lst = linked_list.insert(lst, i, 0) self.assertEqual(lst.val, 2) self.assertEqual(lst.next.val, 1) self.assertEqual(lst.next.next.val, 0) self.assertEqual(lst.next.next.next, None)
def test_linked_list5(self): lst = None for i in range(3): lst = linked_list.insert(lst, i, i) self.assertTrue(linked_list.contains(lst, 0)) self.assertTrue(linked_list.contains(lst, 1)) self.assertTrue(linked_list.contains(lst, 2)) self.assertFalse(linked_list.contains(lst, 3))
def test_linked_list4(self): lst = None for i in range(3): lst = linked_list.insert(lst, i, i) self.assertEqual(linked_list.search(lst, 0), 0) self.assertEqual(linked_list.search(lst, 1), 1) self.assertEqual(linked_list.search(lst, 2), 2) self.assertEqual(linked_list.search(lst, 3), None)
def test_linked_list6(self): lst = None for i in range(3): lst = linked_list.insert(lst, i, i) self.assertEqual(linked_list.remove(lst, 0), Node(1, Node(2, None))) lst = linked_list.remove(lst, 0) self.assertEqual(linked_list.remove(lst, 1), Node(2, None)) lst = linked_list.remove(lst, 1) self.assertEqual(linked_list.remove(lst, 2), None)
def test_linked_list3(self): lst = None for i in range(3): lst = linked_list.insert(lst, i, 0) self.assertEqual(linked_list.get(lst, 0), 2) self.assertEqual(linked_list.get(lst, 1), 1) self.assertEqual(linked_list.get(lst, 2), 0) self.assertRaises(IndexError, linked_list.get, lst, 3) self.assertRaises(IndexError, linked_list.get, lst, -1)
def test_linked_list8(self): lst = None for i in range(10): lst = linked_list.insert(lst, i, 0) self.assertEqual(linked_list.size(lst), 10)
def test_linked_list7(self): lst = None for i in range(3): lst = linked_list.insert(lst, i, i) self.assertEqual(linked_list.pop(lst, 0), (Node(1, Node(2, None)), 0)) self.assertEqual(linked_list.pop(lst, 2), (Node(0, Node(1, None)), 2))
def push(self, item): """Write signature and purpose """ self.top = linked_list.insert(self.top, item, self.num_items) self.num_items = self.num_items + 1 return self.top
class ExercisesChapter2: def __init__(self): pass def remove_dups(linked_list): hash_set = set() node = linked_list.first value = node.value hash_set.add(value) while node.next is not None: node = node.next if node.value in hash_set: # remove node pass else: hash_set.add(node.value) return hash_set if __name__ == "__main__": linked_list = linked_list.LinkedList() for i in range(10): linked_list.insert(i) linked_list.insert(5) print(linked_list) print(remove_dups(linked_list))