Informatika2-2012/Hazi06

A MathWikiből
A lap korábbi változatát látod, amilyen Ador (vitalap | szerkesztései) 2012. március 22., 14:20-kor történt szerkesztése után volt.
(eltér) ←Régebbi változat | Aktuális változat (eltér) | Újabb változat→ (eltér)

Kétirányba láncolt lista

Írj programot, ami megvalósít egy kétirányba láncolt listát! Kiindulhatsz az előadáson vett kódból (ott egy irányban volt csak megoldva a láncolás). Amiken módosítani kell:

   * A listaelemekben legyen az azonosítón kívül egy max. 40 karakteres "nev" is eltárolva
   * Kétirányúsítás: a listaelemekben legyen még egy pointer ami az előző elemre mutat a listában (a lista elő eleménél ez NULL)
   * Legyen egy függvény ami a lista utolsó elemét adja vissza (A lista struktúrában legyen mutató az utolsó elemre is)
   * Írj függvényt ami kap egy listát és egy azonosítót, és visszaadja az azonosítóhoz tartozó nevet ha talált ilyen azonosítót a listában (elölről keressen, az első találtaot adja vissza, ha nem talált semmit akkor üres stringet)
   * Írj egy "uj_elem()" függvényt ami megkap egy long azonosítót és egy (max 40 karakteres) char* nevet, malloc()-cal dinamikusan helyet foglal egy új elemnek, a pointereit NULL-ra állítja és visszaadja az új elemre mutató pointert.
   * Írj egy beszúró függvényt ami a kapott listába egy elemet (amit egy pointerrel kap meg), beszúr arra a helyre ahová név szerint rendezve be kell tenni. Haszáld az előző feladatben megírt függvényt (vagy a string.h-ból az "strcmp()"-t). Ha üres volt eddig a lista (a kezdőelem és az utolsó elem pointer is NULL) akkor persze csak vedd fel ezt az elemet elsőként és utolsóként is. Ha nem volt üres a lista, akkor figyelj arra hogy minden pointert jól átállíts! A beszúrt elem előtti elem "kovetkezo" mutatója az új elemre mutasson, és a beszúrt elem utáni elem "elozo" pointere is az új lemere mutasson (eddig ezek egymásra mutattak). És persze az újonnan beszúrt elem mutatóit is be kell állítani.
   * A main() függvényben egy for ciklusban kérj be a felhasználótól (egyszavas) neveket és long típusú azonosítókat (4 darabot), és a rendezve beszúró függvénnyel szúrd be őket a listába. Végül írasd ki a lista elemeit a láncolás szerinti sorrendben.
Személyes eszközök