########### STACK IMPLEMENTATION ###########
#"""
#Stack : implemented as a list
#top : integer having position of topmost element in Stack
#"""
def isEmpty (stk) :
if stk == []:
return True
else :
return False
def Peek (stk) :
if isEmpty (stk) :
return "Underflow"
else :
top = len (stk) - 1
return stk [top]
def Push (stk, item) :
stk.append (item)
top = len (stk) - 1
def Pop (stk) :
if isEmpty (stk) :
return "Underflow"
else :
item = stk.pop ()
if len (stk) == 0 :
top = None
else :
top = len (stk) - 1
return item
def Display (stk) :
if isEmpty (stk) :
print ("Stack Empty.")
else :
top = len (stk) - 1
print (stk [top], "<- top")
for i in range (top-1, -1, -1) :
print (stk[i])
#__main__
Stack = [] #Stack is intially empty
top = None
while True :
print ("STACK OPERATIONS")
print ("1. Peek")
print ("2. Push")
print ("3. Pop")
print ("4. Display Stack")
print ("5. Exit")
ch = int (input ("Enter your choice (1 - 5) : "))
if ch == 1 :
item = Peek (Stack)
if item == "Underflow" :
print ("Underflow! Stack is empty!")
else :
print ("Topmost item is ", item)
elif ch == 2 :
item = int (input ("Enter item : "))
Push (Stack, item)
elif ch == 3 :
item = Pop (Stack)
if item == "Underflow" :
print ("Underflow! Stack is empty!")
else :
print ("Popped item is ", item)
elif ch == 4 :
Display (Stack)
elif ch == 5 :
break
else :
print ("Invalid choice!")