Egyszeres kapcsolt listák

A láncolt lista minden információs elem tartalmaz egy linket a következő lista elemet. Minden adat elem tipikusan olyan szerkezet, amely az információ és a kommunikáció területén mutatót. Fogalmi láncolt lista így néz ki, ahogy az ábrán. 22.2.







Ábra. 22.2 egyszeresen láncolt lista

Két fő módja az épület egy láncolt lista. Az első út - hogy az új elemek a lista alján. [1] A második -, hogy helyezze elemek egy bizonyos helyzetben a listán, például, növekvő sorrendben. Az építési módszerének függő algoritmus lista funkció hozzáadásával tagja. Kezdjük egy egyszerű módja annak, hogy hozzon létre egy listát azáltal elemeket a végén.

slstore () függvény létrehoz egy láncolt lista helyezve minden a következő elem a listán. Mivel paramétereket kap egy mutató a típusú szerkezet címet. tartalmaz egy új bejegyzést, és egy mutatót az utolsó tétel a listán. Ha a lista üres, egy mutatót az utolsó elem nullának kell lennie.

Bár által létrehozott slstore function () lista lehet válogatni egy külön művelet létrehozását követően, könnyebb, csak hogy egy rendezett lista beillesztése minden új elemet a kívánt helyre a sorban. Ezen felül, ha a lista már rendezve van, akkor van értelme, hogy támogassa a rendezettség, behelyezésekor új elemeket a megfelelő pozíciókban. Beillesztése elem ily módon szükség egységes kép a listát, amíg nincs helye talált egy új elemet, majd adjon meg egy új rekord a talált helyzetben és újratelepítése linkek.

Ha behelyez egy elem egy kapcsolt listán egyike lehet három esetben: az elem lesz az első elem van behelyezve a másik kettő között, ez lesz az utolsó elem. Ábra. 22.3 ábra a referencia változó áramkör minden esetben.







Ábra. 22.3. Helyezze be az új elemet a láncolt lista (amely info - terepi adatok)

A következő függvény, sls_store (). beilleszti a szerkezet típusa címét egy levelezési lista, rendelés neki emelkedő a név mező értéke. A függvény egy mutatót egy mutatót az első és utolsó eleme a listán, valamint egy mutatót a beilleszthető elem. Mivel az első és utolsó eleme a listán változhatnak, sls_store () függvény, ha szükséges, automatikusan frissíti a mutatókat az elején és a végén a listán. Az első hívás funkció első és utolsó mutatókat kell nullával egyenlő.

Menj át az elemek a linkelt lista nagyon egyszerű: elejétől indul, és kövesse a jelzéseket. Általában mellszobor kódrészlet olyan kicsi, hogy az be van helyezve egy másik eljárás - például egy keresési funkció, törölheti vagy megjeleníteni a tartalmat. Így az alábbi függvény megjeleníti az összes nevet a listáról:

Amikor hívja a kijelző funkciói () paraméter Start kell lennie mutatót az első szerkezet a listában. Ezt követően, a függvény továbblép a következő elem, ami azt jelzi, a következő mutató területen. A folyamat leáll, amikor a következő nulla.

Ahhoz, hogy egy elemet a listából akkor csak meg kell, hogy menjen át a láncszemek. Az alábbiakban egy példát a keresés funkciót a tartalma a mező nevét.

Mivel a keresést () függvény egy mutatót a listát tartalmazó bejegyzés a kívánt nevet, visszatérési típusa van leírva, mint egy mutatót a cím struktúrát. Hiányában egy null (NULL) visszaadja a lista megfelelő sejtek.

Ha eltávolít egy elemet a láncolt lista egyszerű. Csakúgy, mint a betét, három eset lehetséges: eltávolítja az első elemet, az elem törlését közepén, törlését az utolsó elem. Ábra. 22.4 ábra mindhárom műveleteket.

Ábra. 22.4. Ha eltávolít egy elemet a láncolt lista

Az alábbiakban egy olyan funkció, amely eltávolítja a megadott elemet a listából cím szerkezetek.

sldelete () függvény kell mennie mutatókat cserélhető elem megelőző hagyni, és egyben az első és az utolsó elemet. Törlésekor mutatót az első elem megelőző eleme, hogy nullával egyenlő (NULL). Ez a funkció automatikusan frissíti az indexek indul és az utolsó. ha egyikük utal, hogy a bejegyzést el kell távolítani.

A láncolt lista, van egy nagy hátránya: lehetetlen elolvasni a linkelt lista az ellenkező irányba. Emiatt gyakran használt kétszeresen láncolt listák.

[1] Ne felejtsük el, hogy láncolt lista, mint a kötél, a két végét: a kezdet és a vég.




Kapcsolódó cikkek