řazení celých čísel, prioritní fronty, seznam – Java – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

řazení celých čísel, prioritní fronty, seznam – Java – Fórum – Programujte.comřazení celých čísel, prioritní fronty, seznam – Java – Fórum – Programujte.com

 

Jaan0
Duch
29. 4. 2013   #1
-
0
-

Dobrý den,

potřeboval bych pomoc s úkolem. Mám vytvořit program pro řazení celých čísel pomocí prioritní fronty implementované

seznamem. Dále mám vypsat postupné přidávání i vybírání z fronty." Poměrně dost se v tom ztrácím, našel by se někdo ochotný, kdo by mi s tímto úkolem pomohl?

Děkuji Jaan

Nahlásit jako SPAM
IP: 89.102.132.–
Flowy0
Věrný člen
29. 4. 2013   #2
-
0
-

vytvoris si objekt ktory bude obsahovat premenne do ktorych ulozis vlastny udaj a zaroven informaciu o nasledujucom (odporucam) a/alebo predchadzajucom prvku ... samotnu radu (frontu) budes indexovat podla prveho/posledneho prvku ...

class Objekt {
	int cislo;
	Objekt posledny = null;
	Objekt nasledujuci = null;
	
	public Objekt(int udaj, Objekt zoznam) {
		zoznam.posledny.nasledujuci = this;
		zoznam.posledny = this;
		this.cislo = udaj;
	}
	public Objekt(int udaj) { //pre vytvorenie prveho
		this.cislo = udaj
		posledny = this;
	}
	public Objekt getNext() {
		return this.nasledujuci
	}
	public boolean hasNext() {
		return this.nasledujuci != null;
	}
	public Objekt remove() {
		//skontrolujes ci to neni prvy prvok (ak hej tak vratis nejaku chybu ... ak nie tak do dalsieho prvku prelozis udaj o poslednom ... idem prec domysli si
//vracias objekt ktory nasleduje za odstranovanym aby si nim mohol indexovat zoznam
	}
}

novy zoznam:
Objekt zoznam = new Objekt(tvoje cislo);
pridanie prvku:
new Objekt(tvoje cislo, zoznam);
odobratie prvku:
zoznam = zoznam.remove();
Nahlásit jako SPAM
IP: 85.237.224.–
https://github.com/Flowy
Jaan0
Duch
6. 5. 2013   #3
-
0
-

Trochu jsem na tom zapracoval a nevím, jestli je to úplně v pořádku, podle zadání...

class PF {
    private class Prvek {
        int klic;
        Prvek dalsi;
        Prvek predch;

        Prvek() {
        }

        Prvek(int klic) {
            this.klic = klic;
            this.dalsi = null;
            this.predch = null;
        }
    }

    private Prvek hlavicka;

    public PF() {
        hlavicka = new Prvek();
        hlavicka.dalsi = hlavicka;
        hlavicka.predch = hlavicka;
    }

    boolean jePrazdna() {
        return (hlavicka.dalsi == hlavicka.dalsi.dalsi);
    }

    void vloz(int klic) {
        Prvek novy = new Prvek(klic);
        novy.dalsi = hlavicka.dalsi;
        novy.predch = hlavicka;
        hlavicka.dalsi.predch = novy;
        hlavicka.dalsi = novy;
    }

    int vybermax() {
        Prvek x = hlavicka.dalsi;
        for (Prvek t = x.dalsi; t != hlavicka; t = t.dalsi)
            if (x.klic < t.klic) {
                x = t;
            }
        int max = x.klic;
        x.predch.dalsi = x.dalsi;
        x.dalsi.predch = x.predch;
        return max;
    }
}
public class Hlavni {
    public static void main(String[] args) {

        int[] poleindexu = {9,1,8,5,4,10,3,7,2,6,11,15,13,19};

        PF intf = new PF();

        for (int i = 0; i < poleindexu.length; i++) {
            intf.vloz(poleindexu[i]);
        }
        
        while (!intf.jePrazdna()) {
        System.out.println(intf.vybermax());
        }

    }
}
Nahlásit jako SPAM
IP: 89.102.132.–
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 39 hostů

Moderátoři diskuze

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý