I'm trying to write an insert function. But I'm so lost. I've got an the error:
ValueError: None is not in list for no reason.
My code:
def __init__(self):
self.heap=[]
self.size = 0
def parent(self,index):
if index<=1:
return None
elif index>=self.size:
return None
else:
return self.heap[int((index-1)/2)]
def swap(self, index1, index2):
self.heap[index1-1], self.heap[index2-1] = self.heap[index2-1], self.heap[index1-1]
def insert(self,x):
self.heap.append(x)
self.size = self.size + 1
#while currentsize :
#if currentsize[x] > self.parent(self,x):
#self.swap(currentsize[x],currentsize[int((x-1)/2)])
#if x > self.parent(x):
#self.swap((currentsize.index[x])+1, currentsize.index[self.parent(x)]+1)
while self.heap.index(x)//2>0:
if self.heap.index(x)>self.heap.index(self.parent(x)):
#temp = a(x)
#a.index(x//2) = a.index(x)
#a.index(x) = temp
self.swap(self.heap.index(x),self.heap.index(self.parent(x)))