Implements the get method, that returns an element at a given index

This commit is contained in:
julien lengrand-lambert
2013-12-08 20:12:03 +01:00
parent 10b1647674
commit 57a852f3e8
2 changed files with 35 additions and 0 deletions

View File

@@ -104,6 +104,20 @@ class SingleLinkedList():
return False
def get(self, idx):
"""
Returns the element of the list located at idx
"""
item = self._root
if idx == 0:
return item.value
elif idx >= self._size:
raise Exception("Index is greater than the size of the list!")
for i in range(idx):
item = item.nexti
return item.value
def __len__(self):
# Returns the number of elements in the list
return self._size

View File

@@ -108,6 +108,27 @@ class test_single_linked_list(unittest.TestCase):
self.assertEqual(False, sl.search(4))
self.assertEqual(False, sl.search(12))
def test_get(self):
sl = SingleLinkedList()
sl.add(2)
sl.add(1)
sl.add(3)
sl.add(4)
sl.add(5)
sl.add(6)
self.assertEqual(6, len(sl))
self.assertEqual(2, sl.get(0))
self.assertEqual(1, sl.get(1))
self.assertEqual(3, sl.get(2))
self.assertEqual(4, sl.get(3))
self.assertEqual(5, sl.get(4))
self.assertEqual(6, sl.get(5))
self.assertRaises(Exception, lambda x: sl.get(14))
if __name__ == "__main__":
unittest.main()