def test_size(self): """Test size method.""" ul = UnorderedList() ul.add(3) ul.add(2) ul.add(1) self.assertEqual(ul.size(), 3)
def sumlist(ll1, ll2): ll = UnorderedList() carry = 0 n1 = ll1.head n2 = ll2.head while n1 or n2: result = carry if n1: result += n1.value n1 = n1.next if n2: result += n2.value n2 = n2.next singles = result % 10 ll.add(singles) carry = result // 10 if carry is not 0: ll.add(carry) return ll
def test_add(self): """Test add method.""" ul = UnorderedList() ul.add(1) self.assertFalse(ul.is_empty()) self.assertTrue(isinstance(ul.head, Node)) self.assertEqual(ul.head.get_data(), 1)
def test_search(self): """Test search method.""" ul = UnorderedList() ul.add(3) ul.add(2) ul.add(1) self.assertTrue(ul.search(3)) self.assertTrue(ul.search(2)) self.assertTrue(ul.search(1)) self.assertFalse(ul.search(0))
def test_remove(self): """Test remove method.""" ul = UnorderedList() ul.add(3) ul.add(2) ul.add(1) self.assertTrue(ul.search(2)) ul.remove(2) self.assertFalse(ul.search(2))
class TestLinkedList(unittest.TestCase): def setUp(self): self.ll = UnorderedList() def test_empty(self): self.assertFalse(self.ll) self.assertEqual(0, len(self.ll)) def test_add_item(self): self.ll.add(1) self.assertEqual(1, self.ll.head.data) def test_items_in_reverse_order_added(self): self.add_many() self.assertEqual(3, self.ll.head.data) self.assertEqual(1, self.ll.tail.data) def test_append(self): self.add_many() self.ll.append(4) self.assertEqual(4, self.ll.tail.data) def test_append_when_empty(self): self.ll.append(7) self.assertEqual(7, self.ll.head.data) def test_find(self): self.add_many() self.assertTrue(self.ll.find(3)) self.assertFalse(self.ll.find(5)) def test_insert(self): self.add_many() self.ll.insert(4, 1) self.assertEqual(4, self.ll.head.next.data) def test_insert_out_of_bounds(self): self.add_many() self.ll.insert(4, 100) self.assertEqual(3, len(self.ll)) def add_many(self): self.ll.add(1) self.ll.add(2) self.ll.add(3)
prev_to_smallest_so_far = prev prev = cur cur = cur.next # if the smallest element is at the head of the linked list: if prev_to_smallest_so_far is None: ll.head = smallest_so_far.getNext() smallest_so_far = None else: prev_to_smallest_so_far.setNext(smallest_so_far.getNext()) #print("Previous {} Smallest {}".format(prev_to_smallest_so_far.data, smallest_so_far.data)) if __name__ == '__main__': lo = UnorderedList() lo.add(1) lo.add(3) lo.add(2) lo.add(15) lo.add(5) lo.add(10) lo.add(7) lo.add(8) lo.add(15) print("***********************") print(lo.lprint()) print(lo.toArray()) print("***********************") print("***********************") remove_minimum(lo) print(lo.toArray())
current == ll.head while current: runner = current while runner.next: # if next is the same as current, then skip it if runner.next.value == current.value: runner.next = runner.next.next else: runner = runner.next current = current.next return ll if __name__ == '__main__': ll = UnorderedList() ll.add(1) ll.add(2) ll.add(2) ll.add(3) ll.add(3) ll.add(3) ll.add(4) ll.add(4) ll.add(4) ll.add(4) ll.printList() ll = removeDups(ll) print "after removeDups" ll.printList()
from linkedlist import Node from linkedlist import UnorderedList list1 = UnorderedList() list1.add(12) list1.add(40) list1.add(45) list1.append(67) print(list1.index(34)) list1.printList()
n2 = n2.next singles = result % 10 ll.add(singles) carry = result // 10 if carry is not 0: ll.add(carry) return ll if __name__ == '__main__': ll1 = UnorderedList() ll2 = UnorderedList() ll1.add(7) ll1.add(1) ll1.add(6) ll1.printList() print "+" ll2.add(5) ll2.add(9) ll2.add(2) ll2.printList() ll = UnorderedList() ll = sumlist(ll1, ll2) print "=" ll.printList()
from linkedlist import UnorderedList mylist = UnorderedList() mylist.add(40) mylist.add(13) mylist.add(32) mylist.add(97) print(mylist.search(13))
def deleteMiddle(node): """ modified my linked list implementation to return the node, when adding to list set next, to next next """ node.value = node.next.value node.next = node.next.next if __name__ == '__main__': """ delete 100 from list """ ll = UnorderedList() ll.add(1) ll.add(2) ll.add(3) ll.add(4) ll.add(5) middle = ll.add(100) ll.add(6) ll.add(7) ll.add(8) ll.add(9) ll.add(0) ll.printList() print "deleteMiddle" deleteMiddle(middle) ll.printList()
from linkedlist import UnorderedList def kth_to_last(ll, k): current = ll.head for i in range(k): current = current.next return current.value if __name__ == '__main__': ll = UnorderedList() ll.add(1) ll.add(2) ll.add(3) ll.add(4) ll.add(5) ll.add(6) ll.add(7) ll.add(8) ll.add(9) ll.add(0) ll.printList() print "kth to last" print kth_to_last(ll, 3)