Professional Documents
Culture Documents
HW 2 PDF
HW 2 PDF
#problem//1
class Stack():
def __init__(self):
self.item=[]
def push(self,item):
self.item.append(item)
def pop(self):
return self.item.pop()
def peek(self):
if not len(self.item)==0:
return self.item[-1]
def get_all(self):
return self.item
def reverse_string(val):
stack = Stack()
for char in range(len(val)):
stack.push(val[char])
update_str=" "
while not (len(stack.get_all())==0):
update_str += stack.pop()
return update_str
name=input("Enter Something: ")
x=reverse_string(name)
print(x)
#problem//2
def isBalanced(expr):
stack = []
1 of 11 10/20/2022, 11:39 PM
scratchpad - Colaboratory https://colab.research.google.com/notebooks/empty.ipynb#scrollTo=Tq...
return False
if current_char==6s'{':completed at 11:36 PM
if char != '}':
return False
if current_char == '[':
if char != ']':
return False
if stack:
return False
else:
return True
expr = input("Write something: ")
x=isBalanced(expr)
print(x)
#problem//3
def LargestOnTopstack(s):
helpingstack1 = Stack()
if s.isempty():
print("Stack is empty!!!")
return
max = s.peek()
while not s.isempty():
val = s.peek()
if max != val :
s.push(val)
s.push(max)
return s
stack1 = Stack()
stack1.push(44)
2 of 11 10/20/2022, 11:39 PM
scratchpad - Colaboratory https://colab.research.google.com/notebooks/empty.ipynb#scrollTo=Tq...
stack1.push(44)
stack1.push(91)
stack1.push(22)
stack1.push(44)
stack1.push(97)
stack1.push(56)
stack1.push(53)
stack1.push(23)
print("Current Stack: ")
stack1.printStack()
print()
print("After your Program keepLargestOnTop(stack): Stack looks like below: ")
s = LargestOnTopstack(stack1)
s.printStack()
Current Stack:
[44, 91, 22, 44, 97, 56, 53, 23]
#problem//4
class Stack():
def __init__(self):
self.item=[]
def size(self):
le=len(self.item)
return le
def isempty(self):
if self.size()==0:
return True
else:
False
def push(self,item):
self.item.append(item)
def pop(self):
return self.item.pop()
def peek(self):
if not len(self.item)==0:
return self.item[-1]
def get_all(self):
return self.item
def balanceAB(s,s2):
x=int(input("How many number you want to push in A? "))
3 of 11 10/20/2022, 11:39 PM
scratchpad - Colaboratory https://colab.research.google.com/notebooks/empty.ipynb#scrollTo=Tq...
sumA=0
for i in range(x):
num1=0
if sumA<sumB:
j=sumB-sumA
s.push(j)
else:
if sumB<sumA:
z=sumA-sumB
s2.push(z)
return (s.get_all(),s2.get_all())
s=Stack()
s2=Stack()
x,y=balanceAB(s,s2)
print("Balanced Stack: ")
print(f"StackA:{x}")
print(f"StackB: {y}")
4 of 11 10/20/2022, 11:39 PM
scratchpad - Colaboratory https://colab.research.google.com/notebooks/empty.ipynb#scrollTo=Tq...
#problem//5
class Stack:
def __init__(self):
self.__data = []
def size(self):
return len(self.__data)
def isempty(self):
if self.size()==0:
return True
else:
return False
def pop(self):
if self.isempty():
print("Stack is empty")
else:
self.__data.pop()
self.push(value)
while(temp.isempty()!=True):
top=temp.peek()
temp.pop()
self.push(top)
def peek(self):
if self.isempty():
print("Stack is empty")
else:
return self.__data[-1]
def clearTahmid(self):
if self.isempty():
print("Stack is empty")
else:
self.__data.clear()
#Optional/Extra function. Just only for display. No use for stack functionality
5 of 11 10/20/2022, 11:39 PM
scratchpad - Colaboratory https://colab.research.google.com/notebooks/empty.ipynb#scrollTo=Tq...
#Optional/Extra function. Just only for display. No use for stack functionality
def printStack(self):
if self.isempty():
print("Stack is empty")
else:
print(self.__data)
s = Stack()
s.push(30)
s.push(20)
s.push(15)
s.push(10)
s.push(5)
s.printStack()
s.pushStack(12)
s.printStack()
#problem//6
class Stack():
def __init__(self):
self.item=[]
def size(self):
le=len(self.item)
return le
def isempty(self):
if self.size()==0:
return True
else:
False
def push(self,item):
self.item.append(item)
def pop(self):
return self.item.pop()
def peek(self):
if not len(self.item)==0:
return self.item[-1]
def get_all(self):
return self.item
6 of 11 10/20/2022, 11:39 PM
scratchpad - Colaboratory https://colab.research.google.com/notebooks/empty.ipynb#scrollTo=Tq...
def charecter(y,s,stack,x):
for i in range (len(x)):
s.push(x[i])
update_str=" "
while not ((s.size())==0):
stack.push(s.pop())
while not ((stack.size())==0):
s.push(stack.peek())
update_str+= stack.pop()
print(updated_str)
return updated_str
s=Stack()
stack=Stack()
x=input("Write something: ")
y=" "
m=charecter(y,s,stack,x)
print(m)
#problem//7
from collections import deque
class Queue():
def __init__(self):
self.item=deque()
def size(self):
le=len(self.item)
return le
7 of 11 10/20/2022, 11:39 PM
scratchpad - Colaboratory https://colab.research.google.com/notebooks/empty.ipynb#scrollTo=Tq...
def isempty(self):
if self.size()==0:
return True
else:
False
def push(self,item):
self.item.append(item)
def pop(self):
return self.item.pop()
def peek(self):
if not len(self.item)==0:
return self.item[0]
def get_all(self):
return self.item
def reverse(q,q2,num):
for i in range (num):
x=int(input("Enter number: "))
q.push(x)
a=0
while a<(q2.size()) :
q.pop()
a=a+1
a=0
while not q.size()==0:
q2.push(q.pop())
z=z+1
return (q2.get_all())
q=Queue()
q2=Queue()
num=int(input("How many numbers you want to input: "))
8 of 11 10/20/2022, 11:39 PM
scratchpad - Colaboratory https://colab.research.google.com/notebooks/empty.ipynb#scrollTo=Tq...
#problem//8
class stack():
def __init__(self):
self.items=[]
def push(self,item):
self.items.append(item)
def size(self):
k=len(self.items)
return k
def isempty(self):
if self.size()==0:
return True
else:
return False
def pop(self):
return self.items.pop()
def peak(self):
if self.isempty():
print("stack is empty")
else:
return self.items[-1]
def getall(self):
return self.items
def printstack(self):
if self.isempty():
print("Stack is empty")
else:
return self.items
def number(even,odd):
for i in range (s1.size()):
if s1.getall()[i]%2==0:
even.push(s1.getall()[i])
else:
odd.push(s1.getall()[i])
print(even.getall())
print(odd.getall())
s1=stack()
9 of 11 10/20/2022, 11:39 PM
scratchpad - Colaboratory https://colab.research.google.com/notebooks/empty.ipynb#scrollTo=Tq...
s1=stack()
even=stack()
odd=stack()
import random
for i in range(9):
a=(random.randint(1,100))
s1.push(a)
print(s1.getall())
number(even,odd)
####9
class Queue:
def __init__(self):
self.queue = []
def size(self):
return len(self.queue)
def queue_is_empty(self):
if self.size() == 0:
return True
else:
return False
def dequeue(self):
if self.queue_is_empty():
print("Queue is empty")
else:
self.queue.pop(0)
def front(self):
if self.queue_is_empty():
print("Queue is empty")
else:
return self.queue[0]
def back(self):
if self.queue_is_empty():
print("Queue is empty")
else:
return self.queue[-1]
10 of 11 10/20/2022, 11:39 PM
scratchpad - Colaboratory https://colab.research.google.com/notebooks/empty.ipynb#scrollTo=Tq...
Queue.dequeue()
Queue.dequeue()
output = ""
while not Queue.queue_is_empty():
output = output + Queue.front()
Queue.dequeue()
print(output)
11 of 11 10/20/2022, 11:39 PM