박혜원
binary heap에서 left child node의 index는 parent node *2이고, right child node는 parent node *2 +1 인 것으로 알고 있는데, 강의에서 제공되는 코드에서는 왜 아래(빨간색으로 표시한 부분)와 같이 표현이 되는지 궁금합니다.
defenqueueWithPriority(self,value,priority):
self.arrPriority[self.size]=priority
self.arrValue[self.size]=value
self.size=self.size+1
self.percolateUp(self.size-1)
defpercolateUp(self,idxPercolate):
ifidxPercolate==0:
return
parent=int((idxPercolate-1)/2)
ifself.arrPriority[parent]<self.arrPriority[idxPercolate]:
self.arrPriority[parent],self.arrPriority[idxPercolate]=self.arrPriority[idxPercolate],self.arrPriority[parent]
self.arrValue[parent],self.arrValue[idxPercolate]=self.arrValue[idxPercolate],self.arrValue[parent]
self.percolateUp(parent)
comment