Beispiel #1
0
 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)))
Beispiel #2
0
 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
Beispiel #3
0
 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)
Beispiel #4
0
 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))
Beispiel #5
0
 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)
Beispiel #6
0
 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)
Beispiel #7
0
 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)
Beispiel #8
0
 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)
Beispiel #9
0
 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))
Beispiel #10
0
 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
Beispiel #11
0

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))