java資料結構 堆

2021-05-27 11:18:08 字數 1791 閱讀 5200

1.  由於用陣列來模擬堆的資料存放比較方便,且陣列0號位置作為哨兵

package com.jzm.heapmap;

public class maxheap >

public maxheap(int size) //end constructor

public boolean isempty()//判斷是否為空

public void doublearray()

heap = a;

}//擴大陣列空間

public void add(t newentry)

int newindex = lastindex;

int parentindex = newindex/2;

while(newindex >1 && newentry.compareto(heap[parentindex])>0)//end while

heap[newindex] = newentry;

}//end add

private void reheap(int rootindex) //找到最大的孩子

if(orphant.compareto(heap[largerchildindex])<0)else

}//end while

heap[rootindex] = orphant;

}//end reheap

public t removemax()//end if

return root;

} //end removemax

public t getmax()

return root;

}//end getmax 得到大頂堆頂數

public int getsize()//得到堆的大小

public void clear()

}//end clear 清空堆

public void display()

} public static void main(string args)

}

2.   堆排序

package com.jzm.heapmap;

public class heapsort //找到最大的孩子

if(orphant.compareto(heap[largerchildindex])<0)else

}//end while

heap[rootindex] = orphant;

}//end reheap

private static > void swap(t a,int i,int j)

public static> void heapsort(t array,int n)

system.out.println("\n---------------------------");

}swap(array,0,n-1);

for (int lastindex =n-2; lastindex>0 ; lastindex--)//end for

}//end heapsort

public static void main(string args) ;

heapsort(a,a.length);

for (int i = 0; i < a.length; i++)

} }

資料結構(java語言描述) 堆

堆是一棵完全二叉樹,堆的每個父節點的值都大於等於子節點的值。或者 我們用陣列來儲存二叉樹。public class maxheap extends comparable public maxheap public maxheap e arr 返回堆中的元素個數 public int size 返回乙...

資料結構 堆

最大堆 最小堆 堆的定義是 n個元素的序列,當且僅當滿足如下關係時被成為堆 1 ki k2i 且 ki k2i 1 或 2 ki k2i 且 ki k2i 1 i 1,2,n 2 當滿足 1 時,為最小堆,當滿足 2 時,為最大堆。若將此序列對應的一維陣列堪稱是乙個完全二叉樹,則2i和2i 1個節點...

資料結構 堆

資料結構 堆的操作和實現 當應用優先順序佇列或者進行堆排序時,一般利用堆來實現。堆是乙個完全 除最底層 外都是滿的 二叉樹,並滿足如下條件 1 根結點若有子樹,則子樹一定也是堆。2 根結點一定大於 或小於 子結點。因為要求堆必須是完全二叉樹,所以可以用線性的資料結構,比如陣列,來實現堆。利用陣列實現...