Tvůrce webu je i pro tebe! Postav třeba web. Bez grafika. Bez kodéra. Hned.
wz

Obsah / Utility / LIST

Zdrojový kód: INCLUDE\UTIL\LIST.INC, UTIL\LIST.ASM


LIST - Dvojitě spojený seznam

Jedním z nejčastějších úkonů, které je potřeba v systému zajistit, je udržování seznamů datových struktur. Může se jednat např. o seznam popisovačů procesů, seznam oken. Ve všech těchto případech máme k dispozici skupinu prvků o neznámém (neomezeném) počtu. Nemůžeme tedy použít pole o pevné velikosti. Navíc není vzácný případ, kdy jeden prvek potřebujeme začlenit do více seznamů.

K tomuto účelu používáme "dvojitě spojený seznam". Každý prvek opatříme dvěma ukazateli - jeden ukazuje na následující prvek v seznamu, druhý na předcházející. Řetězec ukazatelů je zacyklen do kruhu. To nám umožní snadno procházet seznam prvků. Jako zarážka pro ukončení procházení seznamem nám slouží dosažení adresy výchozího prvku. Výchozím prvkem může být buď hlavička seznamu (která není platným prvkem seznamu) nebo jeden z prvků seznamu (seznam bez hlavičky).

Ve zjednodušeném případě by nám stačil pouze jeden ukazatel, ukazatel na další prvek v seznamu. Takový seznam se však těžko udržuje, neboť nemůžeme snadno přidávat a rušit prvky aniž bychom byli nuceni projít celý seznam od začátku a najít předcházející prvek, abychom opravili jeho ukazatel. Dvojitým spojením zajistíme snadnou a rychlou manipulaci se seznamem.

Struktura popisovače seznamu

Inicializace popisovače seznamu

Přidání prvku do seznamu

Zrušení prvku ze seznamu

Podpůrné funkce


Obsah / Utility / LIST