我不確定如何將項目插入到我的最大堆中,然後慢慢向上以使max heap屬性保持不變。 如果heapArray已滿,我已經引發異常,因此無法插入項目。 我沒有使用JCF類或該程序的優先級隊列。 我也引發了我的deleteMax方法,該方法刪除堆的最大值並恢復堆,使max heap屬性保持不變。 public class MaxIntHeap {
//my global var's
private
我正在寫一個最大堆,它可以改變優先級/值。但是,我有問題要理解我的代碼中出現了什麼問題。 我跟了這作爲參考:ref 這是我的代碼(我有一些隱藏的功能,因爲它不是在這裏聚焦) static void swap(MAX_HEAP *heap, int i, int j);
static void swim(MAX_HEAP *heap, int k);
static void sink(MAX_H
我用pascal做了這些。 Proceure Max_Heapify(a:Table;i:longint);
var tmp,l,r,k:longint;
begin
l:=2*i;
r:=2*i+1;
if (heapsize>=l)and(a[i]<a[l]) then k:=l else k:=i;
if (heapsize>=r)and(a[i]<a[r]) then k:=r