当我运行这个时,什么也没有显示,甚至没有错误信息。所以,我想知道什么是错的这个问题以及如何正确地调用这些功能。(我猜的东西错了,当我把这个功能)如何在python中调用这个函数
class BinHeap:
def makeheap(self):
self.heapList=[0];
self.currentSize=0;
def perUp(self,i):
while i // 2 > 0:
if self.heapList[i]<self.heapList[i//2]:
tmp=self.heapList[i//2]
self.heapList[i//2]=self.heapList[i]
self.heapList[i]=tmp
i = i // 2
def insert(self,k):
self.heapList.append(k)
self.currentSize = self.currentSize+1
self.perUp(self.currentSize)
def percDown(self,i):
while (i * 2) <= self.currentSize:
mc = self.minChild(i)
if self.heapList[i] > self.heapList[mc]:
tmp = self.heapList[i]
self.heapList[i] = self.heapList[mc]
self.heapList[mc] = tmp
i = mc
def minChild(self,i):
if i * 2 + 1 > self.currentSize:
return i * 2
else:
if self.heapList[i*2] < self.heapList[i*2+1]:
return i * 2
else:
return i * 2 + 1
def delMin(self):
retval = self.heapList[1]
self.heapList[1] = self.heapList[self.currentSize]
self.currentSize = self.currentSize - 1
self.heapList.pop()
self.percDown(1)
return retval
def buildHeap(self,alist):
i = len(alist) // 2
self.currentSize = len(alist)
self.heapList = [0] + alist[:]
while (i > 0):
self.percDown(i)
i = i - 1
bh=BinHeap()
bh.buildHeap([9,5,6,2,3])
print("BinHeap")
print(bh.delMin())
print(bh.delMin())
print(bh.delMin())
print(bh.delMin())
print(bh.delMin())
Python代码块可用于缩进;如果这是正确的缩进,那么您创建类为'bh = BinHeap()'和后缀的对象的代码将缩进为类的一部分。移出来,你应该开始看到一些执行。 – 2015-02-11 04:57:46