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