Q:- Write a menu driven ,python program to implement a Max Heap.
Code for Max Heap
class heap: data=list() def __init__(self): self.data.append(0) i=int(input("enter the number of elements to be inserted in the heap")) for y in range(1,i+1): print "enter element no",y self.insert(int(input())) print "The created heap is as follows" self.display() def insert(self,nos): self.data.append(nos) self.data[0]+=1 self.upadjust(self.data[0]) def upadjust(self,l): temp=self.data[l] while l>1 and temp>self.data[l/2]: self.data[l]=self.data[l/2] l=l/2 self.data[l]=temp def remove(self): if self.data[0]==0: print "There are no elements to remove. The heap is empty" return print "removing the number\t",self.data[1] self.data[1]=self.data[self.data[0]] self.data[0]-=1 self.downadjust(1) def downadjust(self,i): #print "this is the down adjust function" while True: j=2*i if j>self.data[0]: break if j+1<=self.data[0] and self.data[j+1]>self.data[j]: j=j+1 if self.data[i]>=self.data[j]: break self.data[j],self.data[i]=self.data[i],self.data[j] i=j def display(self): #print self.data if self.data[0]==0: print "the heap is empty" return for i in range(1,self.data[0]+1): print self.data[i],"\t", print "\n" #print "This is the test for the main function" a=heap() while True: print "Menu\n 1.insert\t 2.delete\t 3.display\t 4.exit" ch=int(input("Enter ur choice")) if ch==4: print "Program terminated" break elif ch==3: a.display() elif ch==2: a.remove() elif ch==1: a.insert(int(input("Enter the number to be added"))) else: print "Invalid choice entered"
No comments:
Post a Comment