import random from time import clock import sys def stac(stack,index): insertion_nos=[] temp=[] memory=0 push=0 pop=0 ## print("Initial Stack : ",stack) ## print "\n Size of initial list",len(stack) ## 1 to 100 random no generation for a in range(0,50): insertion_nos.append(random.randint(1,100)) ## print "\n 50 random numbberss are :--- ", insertion_nos ## Insertion to Stack len_stack=len(stack) ## for insertion_val in range(0,len(insertion_nos)): start=clock() k=0 for index_val in range(0,len(index)): for i in range(len_stack-1,(index[index_val])-1,-1): temp.append(stack[i]) pop+=1 del(stack[i]) insert=insertion_nos[k] stack.append(insert) k+=1 push+=1 for j in range(len(temp)-1,-1,-1): stack.append(temp[j]) push+=1 del(temp[j]) ## print "\n Final Stack \n", stack,temp ## print ("time Taken = ",str(clock()-start) + " seconds.") ## print "\n Size odf inserted list",len(stack) ## Deletion for index_val in range(0,len(index)): for i in range(len_stack-1,(index[index_val])-1,-1): temp.append(stack[i]) pop+=1 del(stack[i]) del(stack[i-1]) pop+=1 for j in range(len(temp)-1,-1,-1): stack.append(temp[j]) push+=1 del(temp[j]) ## print "\n\n Stack after deletion \n", stack,temp ## print ("time Taken = ",str(clock()-start) + " seconds.") ## print "\n Size of deleted list",len(stack) memory=memory+sys.getsizeof(stack)+sys.getsizeof(temp)+ sys.getsizeof(index) +sys.getsizeof(insertion_nos) return stack,memory,push,pop ## Start InFile=open("in9_5.txt","r") temp1=InFile.readline().split(",") temp2=InFile.readline().split(",") InFile.close() stack1,index1=[],[] for i in temp1: stack1.append(int(i)) for j in temp2: index1.append(int(j)) start=clock() del_stack,memory_used,no_of_push,no_of_pop=stac(stack1,index1) time_taken=clock()-start OutFile=open("out_5_9_5.txt","w") OutFile.write("\nStack After Deletion = \n"+str(del_stack)) OutFile.write("\nSize of Stack After Deletion = "+str(len(del_stack))) OutFile.write("\n\nNo. Of Push in Stack = " + str(no_of_push)) OutFile.write("\n\nNo. Of Pop in Stack = " + str(no_of_pop)) OutFile.write("\n\nMemory Used " + str(memory_used) +" bytes. ") OutFile.write("\nTime Taken = " + str(time_taken) + " seconds. ") OutFile.close() print "\n Output File Is Generated"