[ dugmee @ 10.06.2010. 16:38 ] @
Imam problem sa zadatkom. Sta ovdje ne stima pa mi svaki put, koliko god puta pozvala da mi izbaci najveci broj, on mi vraca isti, tj prvi put mi vrati taj, ne obrise ga i onda je logicno da mi njega kao najveceg uvjek vrati? Ako neko uoci neki dobar savjet nek mi malcice objasni ;)

Code:
public int remove() {
        if (!empty()){
        int m = 0; //max broj
            // trazi neki veci broj i ako ima zamjeni ga sa m, tj. do tada najvecim brojem
            for (int i = 1; i < queue.length; i++){
                if (queue[i] > queue[m]) m = i;
            }
        int result = queue[m];  // snimi ga i ovdje bi ga trebao obrisati
            count--; // 
        return result; // vraca broj


Znaci, npr... niz: [1,5,2,4] ---> nalazi najveci broj, snimi ga, brise i pomjera ove brojeve za jedno mjesto.

Insert:
1
5
2
4
i vraca kao:
5
4
2
1

Evo i insert metoda:
public void insertElem(int el) {
if (!full()){
int i=0;
while(i<queue.length) {queue=el; count++; break;}
i++;
}
[ Mali Misha @ 10.06.2010. 17:11 ] @
Ti zapravo nađeš maksimalni broj, ali ga ne obrišeš. Tvoja remove() metoda zapravo samo vraća maksimalni broj, i ne menja queue.

Takođe mi ne izgleda da je insert() metoda poslata kako treba.
[ dugmee @ 10.06.2010. 17:31 ] @
Da, ne znam zasto ga ne obrise. Ili kad ovaj broj dodje na njegovo mjesto, onda bi se trebao prepisati preko ovoga, u ovom slucaju recimo 2 preko 5. Ali sta je onda sa pozicijom od 2, ako imam 4 fiksirana mjesta...
[ dule_ns @ 11.06.2010. 09:23 ] @
Ovo što je postavljeno nema šanse da se iskompajlira. Molim te postavi ono što kompajliraš pa ćemo rešiti problem.

Ne mora cela klasa, ali barem cele metode.

[Ovu poruku je menjao dule_ns dana 11.06.2010. u 10:36 GMT+1]
[ Texas Instruments @ 11.06.2010. 09:56 ] @
Pa neće da ti obriše jer ti samo dohvatiš taj element.
Kada napišeš
Code:

int result = queue[m];

samo si dohvatio taj element i ništa nisi promenio u tom redu.
Treba dodati još jednu liniju posle ove
Code:

int result = queue[m];
queue[m] = null;

Time ćeš postaviti tu referencu u redu na null i moći će garbage collector da je počisti kada se bude aktivirao.
[ Tulex @ 11.06.2010. 10:01 ] @
Ne znam sta pokusavas da uradis, da li da uklanjas elemente niza (posto ti se metoda zove remove) ili samo da ga sortiras.
Ako je samo sortiranje u pitanju... evo krajnje elegantnog resenja
Code:
//... 2. Sort doubles or other primitives.
        double[] lengths = {120.0, 0.5, 0.0, 999.0, 77.3};
        Arrays.sort(lengths);
        System.out.println(Arrays.toString(lengths));


A ako i uklanjas elemente niza, onda je normalno sto ti ne radi, jer nigde ne vrsis brisanje.
U svakom slucaju ko sto rece dule_ns stavi bar celu metodu da vidimo cemu sve to.

Pozz