def test_searching(self): l = UnorderedList() for i in range(4): l.add(i) for i in range(4): self.assertTrue(l.search(i)) for item in (5, None, True, "blah"): self.assertFalse(l.search(item))
def test_adding(self): l = UnorderedList() self.assertEqual(l.size(), 0) self.assertTrue(l.is_empty()) l.add(1) self.assertEqual(l.size(), 1) self.assertEqual(l.head.value, 1) self.assertFalse(l.is_empty()) l.add(2) self.assertEqual(l.size(), 2) self.assertEqual(l.head.value, 2)
def test_remove(self): l = UnorderedList() for i in range(3): l.add(i) # remove from middle l.remove(1) self.assertFalse(l.search(1)) self.assertEqual(l.size(), 2) # remove from end l.remove(2) self.assertFalse(l.search(2)) self.assertEqual(l.size(), 1) # remove from start l.remove(0) self.assertFalse(l.search(0)) self.assertEqual(l.size(), 0)
from unordered_list import UnorderedList mylist = UnorderedList() mylist.add(20) mylist.add(40) mylist.insert(1, 55) mylist.insert(-2, 65) print(mylist.index(65)) mylist.append(100) print(mylist.index(100))
from unordered_list import UnorderedList def remove_dups(linked_list): start = linked_list.head previous = None while start: my_next = start.get_next() previous = start while my_next: if start.get_data() == my_next.get_data(): previous.set_next(my_next.get_next()) previous = my_next my_next = my_next.get_next() #advance to next node start = start.get_next() my_list = UnorderedList() stuff = [4, 2, 44, 23, 2, 3, 4, 9] for i in stuff: my_list.add_item(i) print(my_list) remove_dups(my_list) print(my_list)
def setUp(self): self.l = UnorderedList()