Jednosměrně vázaný seznam
Jednosměrně vázaným seznamem rozumíme množinu prvků (typu struktura), které kromě informací o hodnotách vážících se k jednotlivým strukturám, nesou i informaci o následujícím prvku – realizovanou ukazatelem na typ stejný jako je prvek (tedy na strukturu stejného typu). Poslední prvek seznamu je takový, který nemá následující prvek – jeho ukazatel na další prvek je „NULL“. Pokud je stejný mechanizmus implementován i pro opačný směr, jedná se o obousměrně vázaný seznam
Úkol
Napište program, který bude realizovat jednosměrně vázaný seznam.
Program bude obsahovat dva moduly (tři soubory - main.cpp,
vasez.h, vasez.cpp) – modul s main a modul s kódem
realizujícím vázaný seznam (implementaci seznamu). Dále bude v
projektu hlavičkový soubor definic a prototypů funkcí doplňující
soubor seznamu.
Navrhněte strukturu SPrvek vhodnou pro prvek seznamu.
Struktura (prvek seznamu) obsahuje hodnotu typu MUJTYP (definováno
pomocí direktivy #define) a ukazatel(e) pro propojování seznamu.
Ukazatele pro propojení seznamu budou ukazovat
na následující/předchozí prvek.
Algoritmy funkcí by měly
fungovat i pro prázdný seznam (ve funkcích testujte na začátku, zda
mají smysl).
Napište funkci (Push), která vloží nový
prvek na konec seznamu.
Napište funkci (Pop), která vrátí
hodnotu z konce seznamu a prvek zruší.
Napište funkci (Prvni),
která nastaví pomocný ukazatel na první prvek.
Napište
funkci (Dalsi), která posune pomocný ukazatel na další prvek.
Napište funkci (Predchozi), která posune pomocný
ukazatel na předchozí prvek.
Napište funkci (Posledni),
která posune pomocný ukazatel na poslední prvek.
Napište
funkci (Pocet), která pomocí funkce Prvni a Dalsi zjistí aktuální
počet prvků v seznamu.
Napište funkci (Tisk), která
vytiskne seznam od posledního vloženého prvku k prvnímu, ve formátu
„pořadí v seznamu, hodnota“- každý prvek na zvláštním
řádku.
Ukažte volání funkcí a také volání pro
neexistující/prázdný seznam.
Poslední změna 2013-10-25