Hogy írjak vermet és sort C++-ban?
Egyszeresen láncolt listát tudsz készíteni?
Azzal meg lehet oldani mindkettőt.
A LIFO azt jelenti, hogy "Last In, First Out", magyarul: az utolsó ami bement az jön ki először. Ezt úgy kell elképzelned, mint egy gödröt, amibe (a példa kedvéért) hullákat pakolsz. A gödör pont egy hulla méretű, így mindig csak a legfelsőt tudod kiszedni. Egyszerűen elkészíthető egy egyszeresen láncolt listával, ha az első elemtől indulsz, és mindig az elejére adod hozzá az elemeket. (persze ennél jobb megoldás egy tömb, de csak akkor használhatod, ha tudod előre, hogy maximum hány eleme lesz a veremnek.)
FIFO = First In, First Out = Első aki bejött, az megy ki először. Ez a klasszikus sor. Pont olyan, mint mikor rossz kaját osztogatnak egy fesztiválon, és mindenkire egyszerre jön rá a fosás, és sorban állnak a vécénél. Az első bemegy, a második viszont meg kell várja az elsőt, a harmadiknak pedig a másodikat, ezáltal persze az elsőt is. Itt az emberek (vagy adatok ha úgy tetszik) olyan sorrendben mennek ki a vécéből, mint ahogy a sorba beálltak.
Ez szintén megvalósítható egy egyszeresen láncolt listával, de egyszerűbb duplán láncolttal, először azzal próbáld. Egyszeresen láncolttal egy változóban az első és az utolsó elemet kell tárolnod (vagyis a címüket) és minden elem szomszédjának az előtte lévő címét. Igy mikor hozzáadsz, az első elé viheted, majd átírhatod az eleje változódat, mikor pedig kiveszel valamit a végéről egyszerűen csak elugrasztod a végét jelző változódat egyel (persze felszabaditod a memóriát is...).
Itt is gyorsabb egy tömb, de ehhez itt is szintén tudnod kell előre, hogy mekkora legyen...
Remélem ebből már meg tudod csinálni... :P
Használhatsz STL adatszerkezeteket is, kivéve ha ez valami házi feladat :)
verem: stack, sor: queue
Ha rákeresel, sok példát találhatsz rá.
Húúú köszi :) Ez most jól jött, remélem elfogadják. Kicsit keresgéltem, és találtam egy trükköt
typedef std::stack<int> MyStack;
:D
Csak az a bajom, hogy így a pop metódusa nem adja vissza az értéket, ezzel lehet kezdeni valamit? A sor az tökéletes :)
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!