public
class maxheap>
publi maxheap(e arr)
}//返回堆中的元素個數
public
intsize()
//返回乙個boolean值,判斷堆是否為空
public boolean isempty()
//返回完全二叉樹的陣列表示中,乙個索引所表示的元素的父親節點的索引
private
intparent (int index)
return (index - 1)/2;
}// 返回完全二叉樹的陣列表示中,乙個索引所表示的元素的左孩子節點的索引
private
intleftchild(int index)
// 返回完全二叉樹的陣列表示中,乙個索引所表示的元素的右孩子節點的索引
private
intrightchild(int index)
//向堆中新增新的元素
public
void
add(e e)
//元素上浮
private
void
siftup(int k)
}public e findmax()
return data.get(0);
}//取出堆中最大元素
public e extractmax()
private
void
siftdown(int k)
//如果滿足堆性質
if (data.get(k).compareto(data.get(j)) >= 0)
data.swap(k, j);
k = j;
}//取出堆頂元素,並且替換成元素
public e replace(e e)
}}//add和extractmax時間複雜度都是o(logn )
JAVA之資料結構
知識點總結 一 陣列 宣告 object arr new object 長度 object arr object arr new object 賦值 arr 下標 值 獲取陣列長度 arr 下標 值 取值 arr 下標 普通for迴圈遍歷for int i 0 i二 集合 特點 可變長度。colle...
java資料結構之Bitset
這是一種位集合,操作一組布林值的時候可以通過 或or,與and,異或xor 等方法快速改變其組內某一部分值 bitset bits1 new bitset 10 bitset bits2 new bitset 10 for int i 1 i 21 i if i 3 0 else continue ...
java資料結構之陣列
首先定義乙個陣列類class myarray 空參構造時預設是長度為3的陣列 public myarray int maxsize 有參構造時引數為陣列長度 接下來是對陣列的插入 public void insert int a 然後是對陣列的刪除 public void delete int in...