C++ , z LIFO na FIFO – C / C++ – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

C++ , z LIFO na FIFO – C / C++ – Fórum – Programujte.comC++ , z LIFO na FIFO – C / C++ – Fórum – Programujte.com

 

Danndy
~ Anonymní uživatel
2 příspěvky
27. 10. 2011   #1
-
0
-

Zdravím, Potreboval by som pomôcť zo zásobníkmi. Mám spravený zásobník LIFO a chcel by som ho prerobiť na FIFO, ale vôbec netuším ako.

Ak správne tomu rozumiem, stačilo by mi prerobiť metódu push alebo metodu pop, je tak ? (obe metody prikladám). Mohol by mi niekto pomôcť ako to spraviť?

//push - vloz na vrchol zásobníka
void zasobnik::push(int iNum){
	prvok * novy;
	novy = new prvok;
	novy->napln(iNum,prvy);
	prvy = novy;
}

//pop - vyber z vrchola zásobníka
void zasobnik::pop(){
	if(prvy!=NULL){
		int iNum;
		prvok * uk;
		uk = prvy;
		iNum = uk->vypis();
		
		if(uk->kontrola_adresy()){
			cout << uk->vypis();
			prvy = uk->adresa();
		}
		if((uk->kontrola_adresy() == false) && (iNum != 0)){
			prvy = NULL;
		}
	}
	else{
		cout << "Ziaden prvok na vymazanie" << endl;
	}
}

Ďakujem.

Nahlásit jako SPAM
IP: 195.98.13.–
KIIV
~ Moderátor
+43
God of flame
27. 10. 2011   #2
-
0
-

LIFO je "last in first out" - tj. co tam vlozis naposledy, vyberes pomoci pop prvni..

FIFO je klasicka fronta - kdo driv prijde ten driv mele... tj. musis vkladat na konec a vybirat ze zacatku...

nejsou to velky zmeny, ale jestli si kod nedelal ty, tak s tim budes mit tak jak tak problem (minimalne se bude hodit ukazatel na posledni prvek (kam pridavat) a pop muze fungovat skoro stejne... jen hlidat prazdnou frontu a od toho i ten ukazatel na posledni prvek

Nahlásit jako SPAM
IP: 62.168.56.–
Program vždy dělá to co naprogramujete, ne to co chcete...
Danndy
~ Anonymní uživatel
2 příspěvky
27. 10. 2011   #3
-
0
-

Diky za odpoveď. Robili sme to na hodine v skole, písal som to ja, aj keď nemôžem povedať že tomu na 100% rozumiem.

Takže funkciu pop meniť nebudem, prvky budem pridávať na žačiatok a odoberať z konca, len neviem ako spraviť ten ukazovateľ na posledný prvok ktorý budem odoberať, mohol by si mi poradiť ako sa to robí?

Nahlásit jako SPAM
IP: 195.98.13.–
KIIV
~ Moderátor
+43
God of flame
27. 10. 2011   #4
-
0
-

#3 Danndy
tak jako mas prvy tak budes mit posledni.... vesmes novy posledni bude mit nasledovnika NULL a bude se ukladat do nasledovnika posledniho... pak se posledni prepise adresou toho noveho posledniho...

ale jak rikam budes muset davat pozor na vycerpani (aby sis v pripade vyberu prvku kdy bude prvni==posledni oznacil oba pomoci NULL)

Nahlásit jako SPAM
IP: 94.112.32.–
Program vždy dělá to co naprogramujete, ne to co chcete...
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, 137 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ý