Learn practical skills, build real-world projects, and advance your career
Updated 2 years ago
cs-102-prac
Use the "Run" button to execute the code.
class Stack():
def __init__(self):
self.items = []
def is_empty(self):
return self.items == []
def push(self, data):
if len(self.items)==5:
return "Stack full"
else:
self.items.append(data)
def pop(self):
if is_empty:
return "Stack Empty"
return self.items.pop()
class Node():
def __init__(self):
self.next = None
self.stack= Stack() #Makes an emty Stack in each node
def add(data,index):
self.index=index
if len(self.stack)==5:
raise ValueError(f"Stack at index {index} is full") #Checks if stack is full
else:
self.stack.push(self.data)
def search_stack(number,i):
tmp=Stack() #tmp stack to hold popped numbers
for j in range(len(self.stack)):
num = self.stack.pop()
if num == number:
self.stack = tmp # stack joined back
return "Number found and deleted"
else:
tmp.push(num)
else:
self.stack = tmp
return f"Number not found in the stack with index {i}"
def view_stack(self):
return self.stack.items
# Class to create a Linked List
class LinkedList():
def __init__(self, head=None):
self.head = head
for i in range(10):
node = Node() #Creating 10 empty nodes linked to each other
if not self.head:
self.head = node
else:
node.next = self.head
self.head = node
def push_at(self,object): # Adding data to the empty node's stacks
index = object%10
temp = self.head
for i in range(0, index-1):
temp = temp.next
temp.add(object,index)
def search(self,number):
self.head=head
for i in range(10):
temp_node=head.next
temp_node.search_stack(number,i)
else:
raise ValueError("Number not in linked list")
def print_ll(self):
self.head=head
for i in range(10):
temp_node=head.next
temp_node.view_stack()
return "That is the end of LL"
myList=LinkedList()
myList.push_at(200)
---------------------------------------------------------------------------
TypeError Traceback (most recent call last)
/tmp/ipykernel_161/1171310630.py in <module>
----> 1 myList.push_at(200)
/tmp/ipykernel_161/1809426879.py in push_at(self, object)
32 for i in range(0, index-1):
33 temp = temp.next
---> 34 temp.add(object)
TypeError: add() takes 1 positional argument but 2 were given