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.
Head = 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)
SetNext(pom, NULL) // kvuli bezpeci pri vrácení; některé
// algoritmy vyžadují pro zrušení
zruš pom/ vrať pom – podle konkrétní definice (existují obě
verze)
Bude fungovat i pro poslední prvek?
Přidání prvku na danou pozici
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)
Odebrání prvku z dané pozice pozici
vstup: seznam, index
pokud je seznam prázdný nebo je index mimo počet prvků seznamu
...
jinak
Pom = Head
Dokud Pom neni prvek za kterým je rušený prvek
Pom = Next(Pom)
Ruseny = Next(Pom)
SetNext(Pom,Next(Ruseny))
SetNext(pom, NULL) // kvuli bezpeci pri vrácení;
// některé algoritmy vyžadují pro zrušení
zruš pom/vrať pom – podle konkrétní definice (mohou být obě
verze)
Poslední prvek v seznamu?
Obousměrný seznam
Procházení
Pokud je seznam prázdný udělej ... a ukonči
Aktuální_prvek = Head
Dokud je Aktuální_prvek platný
zpracuj data/proveď činnost
Aktuální_prvek = Next(Aktuální_prvek)
// procházení opačným směrem
Aktuální_prvek = Tail
Dokud je Aktuální_prvek platný
zpracuj data/proveď činnost
Aktuální_prvek = Prev(Aktuální_prvek)