Я хочу вставить несколько узлов, похоже, функция глючит. Он может вставлять, но не может выполнять heapify. Мне интересно, что индекс добавлен после добавления нового элемента. Любые комментарии приветствуются. Спасибо.
def heapify(arr, n, i):
smallest = i
l = 2 * i + 1
r = 2 * i + 2
if l < n and arr[l] < arr[smallest]:
smallest = l
if r < n and arr[r] < arr[smallest]:
smallest = r
if smallest != i:
(arr[i],
arr[smallest]) = (arr[smallest],
arr[i])
heapify(arr, n, smallest)
def insertNode(arr, n, key):
n=n+1
arr.append(key)
heapify(arr, n, n-1)
def printArray(arr, n):
for i in range(n):
print(arr[i])
alist = [8, 9, 15, 16, 11, 17]
n = len(alist)
insertNode(alist, n, 12)
insertNode(alist, n, 18)
insertNode(alist, n, 6)
printArray(alist, n+3)