03_seznamy_realizace
Níže je uveden pouze náhled materiálu. Kliknutím na tlačítko 'Stáhnout soubor' stáhnete kompletní formátovaný materiál ve formátu PDF.
Přidání prvku na začátek
Vstup – seznam, vkládaný Prvek
Pokud je seznam prázdný
Head = Prvek
Tail = Prvek
SetNext(Prvek, NULL) - mělo by být, ale pro jistotu
SetPrev(Prvek, NULL) - mělo by být, ale pro jistotu
jinak
pom = Head // pro propojeni
SetNext(Prvek,Head) // bývalý první prvek bude druhý
Head = Prvek
SetPrev(pom, Prvek)
Odebrání prvku ze začátku
Vstup – seznam
Pokud je seznam prázdný
oznam chybu (hodně implementací neřeší, nutno odebírat po
kontrole prázdnosti Empty)
jinak
pom = Head
Head = Next(Head)
SetPrev(Head, NULL);
SetNext(pom, NULL) // kvuli bezpeci pri vrácení;
některé algoritmy vyžadují pro zrušení
SetPrev(
)
zruš pom/ vrať pom – podle konkrétní definice (existují obě
verze)
Přidání prvku na danou pozici
- varianta PřidejZa – nastavíme na daný prvek a potom pouze přidáme, parametrem může být
index nebo přímo prvek/hodnota, který se má najít
- Rozdělení je možné i u ostatních algoritmů
- u obousměrného seznamu je možné i PřidejPřed
vstup: seznam, prvek, index
pokud je seznam prázdný nebo je index mimo počet prvků seznamu
...
jinak
Pom = Head
Dokud Pom neni prvek za který chceme vkládat
Pom = Next(Pom)
SetNext(Prvek,Next(Pom))
SetNext(Pom,Prvek)
SetPrev(
)
SetPrev(
)
Odebrání prvku z dané pozice pozici
vstup: seznam, index
pokud je seznam prázdný nebo je index mimo počet prvků seznamu
...