import time import sys import time class stk: def __init__(self,n): self.stack=range(n) self.top=0 def push(self,n): global psh psh=psh+1 self.stack[self.top]=n self.top=self.top+1 def pop(self): global pp pp=pp+1 self.top=self.top-1 a=self.stack[self.top] return a def display(self): for i in range(self.top): f2.write(str(self.stack[i])+'\n') def insert(s,n): st=stk(100-n) for i in range(100-n): st.push(s.pop()) s.pop() s.push(n) for i in range(100-n): s.push(st.pop()) psh=0 pp=0 f1=open('in8_5.txt','r') f2=open('out_25_8_5.txt','w') w=f1.readline() lis=w.split(",") n=int(lis[0]) m=int(lis[1]) s=stk(n) f1.readline() w=f1.readline() lt=w.split(",") j=time.clock() for i in range(n): s.push(int(lt[i])) f1.readline() w=f1.readline() lts=w.split(",") for i in range(m): insert(s,int(lts[i])) k=time.clock() f2.write("No. of pushs="+str(psh)+'\n') f2.write("No. of pops="+str(pp)+'\n') f2.write('Size of stack='+str(n)+'\n') f2.write('Stack after insertion\n') s.display() f2.write('Time Used= '+str(k-j)) mem=sys.getsizeof(psh)+sys.getsizeof(lt)+sys.getsizeof(s) f2.write('\nMemory Used='+str(mem)) f1.close() f2.close()