A dinamikus lista, végrehajtása és alkalmazása a c

1. Bevezetés

Nagyon gyakran, amikor a fejlődő alkalmazások működnek számos bemeneti adatok a kérdés merül fel a tárolás során a program végrehajtását. Ólom mindet nincs értelme, én összpontosítani tömbök. Kétségtelen, hogy ez a fajta tárolási megoldja a problémát, de nyilvánvaló, hogy vannak hátrányai. Amelyek közül a legfontosabb, persze, ez egy fix méretű. Ez a tulajdonság nem lehet változtatni, még dinamikusan létrehozott tömbök gyakran teszi használó programozók kizárólag őket, a memóriát „a készlet”. Nos, először is, még a „tartalék” korlátozott, és senki sem tud adni garantálja, hogy elég lesz, másrészt, éppen ellenkezőleg, a „készlet” is elegendő lehet, hogy egy jelentős részét a program memóriát lakni fog feleslegesen.

2. Nyilatkozat a probléma

Annak igazolására, a végrehajtás a munka egy dinamikus lista, oldja meg a problémát:

„A szöveges fájl változó azonosítókat és numerikus értéket (például: x 15 abc 12,098 z -1,23) Transzfer azokat a dinamikus lista, amelyre végre a következő műveleteket: keresés azonosítója szerepel a listán, a változó értéke az említett azonosító; eltávolítja az azonosító a listából. hozzátéve, hogy a lista egy új azonosítót egy előre meghatározott értéket. az ülés után egy listát az azonosítók és értékeiket át vissza a fájlt "

A kihívás lehetővé teszi számunkra, hogy megtanulják, hogyan kell végrehajtani az összes alapvető műveleteket egy dinamikus lista - hozzon létre egy listát, hozzáadása és eltávolítása elemek (csomópontok) listában, keress összetevők listája. Hogy oldja meg, hogy szükség van az ismeretek a fájlt IO, indexek, és a strukturált adattípusok. Nem hoz létre semmilyen shell erre a problémára, de hasznos lenne, hiszen egy sor lehetséges műveleteket. Azonban nem ez a fő cél ebben a cikkben. Csak felismerve minden műveletet különálló funkciók és a minta hivatkozni rájuk időben.

3. határozatot

3.1. szabványos start

Mi jár a döntés. Hozzon létre egy konzol projekthez, és írjon egy meglehetősen szabványos kód - megszervezni file input. Ahhoz, hogy olvasni egy fájlt használ getline () módszer, ahol a harmadik paraméter megadja a rés, amely az elválasztóelemet a fájlban.

Úgy tűnik, hogy minden világos, és nem igényel külön figyelmet. leírjuk a fajta szükséges az első szakaszban a tennivalólista dolgozni, a második fogunk funkciók dolgozni vele. Most folytassa közvetlenül a lista leírását, mert A program már közel jár a feltöltése.

3.2. Leírás Dinamikus lista

Már a kezdet kezdetén, Idézzük (vagy az első tanulni)) úgy, hogy a dinamikus lista egy bizonyos mennyiségű komponensek (csomópontok), amely közvetlenül az információ rész (szám, karakterlánc, vagy összetettebb adattípusok), valamint egy linket a következő komponens (talán csomópont 2 tartalmaz hivatkozásokat a következő és az előző, ebben az esetben, a lista nevű kétszeresen csatlakoztatva). Így az alábbi szerkezetű leíró elemek listáját mi a probléma:

Ez könnyű megérteni, mit jelent, hogy hozzon létre egy üres lista. Sőt, akkor nem kell semmit, kivéve, hogy a referencia rendelni az első elem (fej) értéke NULL. Kiadni, mint egy funkció párhuzamos hozzon létre egy másik, amely ellenőrzi, ez a feltétel, ha a lista üres.

Látjuk, hogy minden egyszerű. Természetesen a típus, amely leírja a listát lehetne kiadni, mint egy osztály, és a funkció hozza létre, hogy a kivitelező az osztályban, de elmegyek, hogy Ön, mint a házi feladatot. Most, a main () függvény egy változó típusú dyn_list, és hozzon létre egy üres lista. Akkor megy a következő lépésre.

3.3 Műveletek összetevők listáján

Mivel a művelet véget ért, most meg kell befejezni a programot.

3.4. Tesztelés funkciók és a program elvégzése

Nos, minden egyszerű, a ciklus csak akkor tudjuk utalni a funkcióhoz hozzá egy komponens a listára. Miután a ciklus, a többi a mi teszt funkciót, és megjeleníti a teljes listát a fájlban. main () függvény Itt van a teljes kódot itt

Annak ellenére, hogy valaki úgy tűnik ijesztő, hogy a munka egy dinamikus lista, a valóságban nem csak a nagyon egyszerű, de mégis kényelmes - az összetevők hozzák létre, és hagyni dinamikusan dimenziója a lista csupán az korlátozza a rendelkezésre álló memória, miután a komponensek már nem használunk, a memória is azonnal szabaddá más csomópontok.