Sor láncolt ábrázolással
Fej Bevezetés: Egyszerű, egyirányú, fejelem nélküli láncolt lista: 1. Lista pointere (l vagy FEJ) 2. Az aktuális elemre mutató pointer (akt) Fej Az utolsó elem pointere NIL, azaz a nullpointer akt
Fej A lista egy eleme: mut adat A lista elemei két részből állnak: - adat rész, amelyben a kívánt adatokat, rekordokat tároljuk - a mutató rész, amelyben a következő elem címe van tárolva
Sor láncolt ábrázolással: eleje vége - s változó egy pointert jelent - eleje pointer mutat a sor első elemére - vége pointer mutat a sor utolsó elemére - az eleje pointert nem használjuk, mivel megegyezik az s pointerrel
Üres sor létrehozása: Empty(s) s:=NIL vége:=NIL - a lista s pointerét és a végére mutató pointert NIL-re állítja
IsEmpty(s) művelet: IsEmpty(s) Return(s=NIL) - visszatérési értéke, egy logikai érték - ha a sor üres, akkor igaz értékkel tér vissza - ha található a sorban elem, akkor hamis értékkel tér vissza
Első elem értékének lekérdezése: First(s) s=NIL Hiba Return(s^.adat) - első lépésben leellenőrzi, hogy nem-e üres a sor - ha üres, akkor hibát dob - ha nem üres, akkor vissza adja a sor első elemének értékét, amely az adat részben található - csak lekérdezi a sor első elemének értékét, de nem veszi ki azt a sorból!
Új elem behelyezése a sorba: In(s,p) s=NIL s:=p vége:=p vége.^mut:=p - bemenő paraméterkén egy mutató kap, amely egy előre elkészített listaelemre mutat - megvizsgálja, hogy a sor üres-e - ha üres, akkor a sor pointerét és a vége pointert ráállítja a behelyezendő elemre - ha nem üres, akkor az utolsó elem mutatóját átállítja a behelyezendő elemre, majd a vége pointert az újonnan behelyezett elemre - a jobb ágon fontos a sorrend !!!
Elem kivétele a sorból: Out(s,p) s=NIL H I B A p:=s s:=s^.mut - visszatérési értéke egy mutató - vizsgálja, hogy üres-e a sor - ha üres akkor hibát dob, mivel üres sorból nem vehetünk ki elemet - ha nem üres, akkor a p pointert a sor első elemére állítja, majd a sor mutatóját a sor második elemére állítja - ha csak egyetlen elem volt a sorban, akkor a sor pointere NIL lesz - a jobb ágon fontos a sorrend !!!
Készítette: Bozó István