Új hozzászólás Aktív témák
-
#74220800
törölt tag
Ja maradt az arraylist, az a legkézenfekvőbb. De valamiért, a leadó system testje vmiert ezt a hibát írja ki:
Removed two elements but the second one had a lower priority than the first one! Amit nem értek. Amugy itt van a programom(class nevet most atneveztem):
import java.util.ArrayList;
public class MyPriorityQueue<T extends Comparable<T>> {
private ArrayList<T> queue;
private int maxElements;
public MyPriorityQueue(int maxElements){
this.maxElements = maxElements;
queue = new ArrayList<T>();
}
public void add(T e) throws IllegalStateException{
if( size() == maxElements)
throw new IllegalStateException("The queue is already full!");
queue.add(e);
int i = size()-1 ;
T help;
while ( i > 0 && ( queue.get( parent(i) ).compareTo( queue.get(i) ) ) > 0 ){
help = queue.get(i);
queue.set(i,queue.get( parent(i) ));
queue.set(parent(i), help);
i = parent(i);
}
}
public T pop() throws IllegalStateException{
if(queue.isEmpty())
throw new IllegalStateException("The queue is empty!");
T min = queue.get(0);
queue.remove(0);
minheapify(0);
return min;
}
public int size(){
return queue.size();
}
public int parent(int i){
return (i - 1) / 2;
}
public void minheapify(int i){
int l = i*2+1;
int r = l+1;
int min;
T help;
if (l <= size()-1 && ( queue.get(l).compareTo( queue.get(i) ) ) < 0 )
min = l;
else
min = i;
if (r <= size()-1 && ( queue.get(r).compareTo( queue.get(min) ) ) < 0)
min = r;
if (min != i){
help = queue.get(i);
queue.set(i,queue.get(min));
queue.set(min, help);
minheapify(min);
}
}
public void display(){
for(int i = 0; i < queue.size(); i++) {
System.out.print(queue.get(i) + " ");
}
}
}
Új hozzászólás Aktív témák
A topicot kiemeltem. Valaki nem akar egy nyitó hsz-t írni?:))
- Xbox Series X|S
- gban: Ingyen kellene, de tegnapra
- World of Warships
- AMD K6-III, és minden ami RETRO - Oldschool tuning
- Motorolaj, hajtóműolaj, hűtőfolyadék, adalékok és szűrők topikja
- 3D nyomtatás
- Nintendo Switch
- TCL LCD és LED TV-k
- Milyen légkondit a lakásba?
- Vezetékes FEJhallgatók
- További aktív témák...
- Samsung Galaxy S24 Ultra 512GB,Átlagos,Dobozaval,12 hónap garanciával
- BESZÁMÍTÁS! MSI B450M R5 5600X 32GB DDR4 500GB SSD RTX 4070 Ti Super 16GB Zalman T3 Plus 750W
- HIBÁTLAN iPhone 13 Pro 128GB Graphite-1 ÉV GARANCIA - Kártyafüggetlen, MS4108, 100% Akksi
- Eladó Apple iPhone XS 64GB / 12 hó jótállás
- Xiaomi Mijia Smart Socket Plug kínai WIFI-set keresek
Állásajánlatok
Cég: Laptopműhely Bt.
Város: Budapest
Cég: Laptopszaki Kft.
Város: Budapest

