Skip to content

Commit

Permalink
Fixed insert and implemented push front
Browse files Browse the repository at this point in the history
  • Loading branch information
Naren Mudivarthy authored and Naren Mudivarthy committed Sep 19, 2021
1 parent 4253864 commit 743def3
Show file tree
Hide file tree
Showing 2 changed files with 27 additions and 12 deletions.
16 changes: 12 additions & 4 deletions data_structures/linked_list.py
Original file line number Diff line number Diff line change
Expand Up @@ -56,9 +56,14 @@ def append(self, data):
h.next = n

def insert(self, index, value):
if index == 0:
self.pushFront(value)
return

self._size += 1
n = Node(value)
h = self._moveTo(index -1)

n.next = h.next
h.next = n

Expand Down Expand Up @@ -96,7 +101,6 @@ def remove(self, value):
prev.next = h.next
self._size -= 1


def deleteAtEnd(self):
h = self.head

Expand All @@ -116,7 +120,7 @@ def deleteAtEnd(self):
def pop(self, index=None):

if index > self.size:
return
raise IndexError

if index is None:
self.deleteAtEnd()
Expand All @@ -142,8 +146,12 @@ def peekBack(self):

return h.data

def pushFront(self):
pass
def pushFront(self, value):
self._size += 1
n = Node(value)
n.next = self.head
self.head = n
return

def pushBack(self):
pass
Expand Down
23 changes: 15 additions & 8 deletions tests/test_linked_lists.py
Original file line number Diff line number Diff line change
Expand Up @@ -25,13 +25,22 @@ def test_insert(self):
for i in range(0, 10):
ll.append(i)

ll.insert(value=10, index=9)

expected = list(range(0, 10))
expected.insert(9, 10)
self.assertEqual(ll[9], 10)

self._checkEqual(ll, expected)
def _insert(index, val):
ll.insert(index, val)
expected.insert(index, val)
print(ll)
self.assertEqual(ll[index], val)
self._checkEqual(ll, expected)

_insert(9, 10)
_insert(0, 100)
_insert(1, 200)
_insert(0, 101)
_insert(ll.size, 1000)
_insert(ll.size, 1001)


def _checkEqual(self, ll, expected):
print('Expected: {}, Got: {}'.format(expected, ll))
Expand Down Expand Up @@ -96,11 +105,9 @@ def _pop(i):
# _pop(4)
# _pop(3)
_pop(0)
_pop(1)

# ll.pop(1)
print('----->', expected.pop())
_pop(1)
self._checkEqual(ll, expected)

# print(expected, ll)

Expand Down

0 comments on commit 743def3

Please sign in to comment.