From 10b1647674e28148c723ba5f3fc3dd67fc34b0d3 Mon Sep 17 00:00:00 2001 From: julien lengrand-lambert Date: Sun, 8 Dec 2013 20:03:51 +0100 Subject: [PATCH] Adds search method in the implementation --- 04_linkedList/ll.py | 13 +++++++++++++ 04_linkedList/ll_test.py | 18 ++++++++++++++++++ 2 files changed, 31 insertions(+) diff --git a/04_linkedList/ll.py b/04_linkedList/ll.py index 0b111d8..3b47641 100644 --- a/04_linkedList/ll.py +++ b/04_linkedList/ll.py @@ -91,6 +91,19 @@ class SingleLinkedList(): print "Going there!" raise Exception("Value not found in the list") + def search(self, value): + """ + Returns True if the value is in the List. + """ + item = self._root + while(item != None): + if item.value == value: + return True + + item = item.nexti + + return False + def __len__(self): # Returns the number of elements in the list return self._size diff --git a/04_linkedList/ll_test.py b/04_linkedList/ll_test.py index da01a98..9f8f176 100644 --- a/04_linkedList/ll_test.py +++ b/04_linkedList/ll_test.py @@ -91,5 +91,23 @@ class test_single_linked_list(unittest.TestCase): self.assertEqual("Empty List", sl.__str__()) self.assertEqual(0, len(sl)) + def test_search(self): + + sl = SingleLinkedList() + + sl.add(2) + sl.add(1) + sl.add(3) + self.assertEqual(3, len(sl)) + + self.assertEqual(True, sl.search(2)) + self.assertEqual(True, sl.search(3)) + self.assertEqual(True, sl.search(1)) + + self.assertEqual(False, sl.search("a")) + self.assertEqual(False, sl.search(4)) + self.assertEqual(False, sl.search(12)) + + if __name__ == "__main__": unittest.main()