Kod: Zaznacz cały
package heap;
public class Heap {
private int numberElem;
private int[] elements;
Heap(int maxSize){
elements= new int[maxSize];
numberElem=0;
}
public void add(int value)throws Exception{
try{
element[numberElem]=value;
numberElem ++;
minHeap();
}catch (Exception e){
trow new Exception(" Brak miejsc w kopcu ");
}
}
private void minHeapty(){
int i =numberElem-1;
int rob;
while((i>0)&&(element[i]>element[(i-1)/2])){
rob=element[i];
element[i]=element[(i-1)/2];
element[(i-1)/2]=rob;
i=(i-1)/2;
}
}
public boolean removeMax(){
if(numberElem >0){
element[0]=element[numberElem-1];
maxHeapify(0);
return true;
}
return false;
}
private void maxHeapify(int r){
int i=r;
int rob;
int left=2*i+1;
int right=2*(i+1);
boolean far=true;
while(left<numberElem &&
if(ringht<numberElem){
if(elements[left]> elements[right]){
if(elements[i]<elements[left]){
elements[i]<elements[left];
i=left;
}else far=false;
}else{
if(elements[i]<elemets[right]){
elements[i]<elements[right];
i=right;
}else far=false;
}else {
if(elements[i]<elements[left]){
elements[i]<elements[ledt];
i=left;
}else far=false;
}
left =2*i-1;
ringht =2*(i+1);
}
}
public void makeHeappy(int[] tab)throws Exception{
try{
for(int i=0;i<tab.lenght;i++){
elements[i]=tab[i];
}
numberElem=tab.lenght;
}catch(Exceptione){
trows new Exception (" Brak miejsca w kmopcu ")
}
heapify(0);
}
private void heapify (int i){
if(2*i+1<numberElem){
heapify (2*i+1);
}
if(2*(i+1)<number Elem){
heapify(2*(i+1));
}
maxHeapify(i);
}
public static void main(String[] args) {
}
}