Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
42 changes: 28 additions & 14 deletions Exercise_1.py
Original file line number Diff line number Diff line change
@@ -1,20 +1,34 @@
class myStack:
#Please read sample.java file before starting.
#Kindly include Time and Space complexity at top of each file
def __init__(self):

def isEmpty(self):

def push(self, item):

def pop(self):


def peek(self):

def size(self):

def show(self):
def __init__(self):
self.stack = []

def isEmpty(self):
if len(self.stack) > 0:
return False
return True

def push(self, item):
self.stack.append(item)

def pop(self):
if len(self.stack) == 0:
return 'Sorry we dont have any value in stack'
popped_val = self.stack[-1]
self.stack = self.stack[:-1]
return popped_val

def peek(self):
if len(self.stack) == 0:
return 'Sorry we dont have any value in stack'
return self.stack[-1]

def size(self):
return len(self.stack)

def show(self):
return self.stack


s = myStack()
Expand Down
29 changes: 29 additions & 0 deletions Exercise_2.py
Original file line number Diff line number Diff line change
Expand Up @@ -6,10 +6,39 @@ def __init__(self, data):

class Stack:
def __init__(self):
self.node = None

def push(self, data):
if self.node:
flag = True
last_node = self.node
while(flag):
if not last_node.next:
last_node.next = Node(data)
flag = False
else:
last_node = last_node.next
else:
self.node = Node(data)
print('Data is added %s'%data)

def pop(self):
popped_val = None
if self.node:
flag = True
last_node = self.node
while(flag):
if not last_node.next:
popped_val = last_node.data
self.node = None
flag = False
elif not last_node.next.next:
popped_val = last_node.next.data
last_node.next = None
flag = False
else:
last_node = last_node.next
return popped_val

a_stack = Stack()
while True:
Expand Down
40 changes: 38 additions & 2 deletions Exercise_3.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,30 +3,66 @@ class ListNode:
A node in a singly-linked list.
"""
def __init__(self, data=None, next=None):
self.data = data
self.next = None

class SinglyLinkedList:
def __init__(self):
"""
Create a new singly-linked list.
Takes O(1) time.
"""
self.head = None
self.head = ListNode(None)

def print_val(self):
"""
Helper function to debug
"""
last_node = self.head
while(last_node):
print(last_node.data)
last_node = last_node.next

def append(self, data):
"""
Insert a new element at the end of the list.
Takes O(n) time.
"""
if not self.head.data:
self.head.data = data
return
last_node = self.head
while(last_node.next):
last_node = last_node.next
last_node.next = ListNode(data)

def find(self, key):
"""
Search for the first element with `data` matching
`key`. Return the element or `None` if not found.
Takes O(n) time.
"""

if not self.head:
return False
last_node = self.head
while(last_node):
if last_node.data == key:
return True
last_node = last_node.next
return False

def remove(self, key):
"""
Remove the first occurrence of `key` in the list.
Takes O(n) time.
"""
last_node = self.head
if last_node.data == key:
self.head = last_node.next
return True
while(last_node.next):
if last_node.next.data == key:
last_node.next = last_node.next.next
return True
last_node = last_node.next
return False