Dynamické datové struktury ========================== Seznamy -- jednosměrný, obousměrný, kruhový, aktivní, zásobník, fronta. Strom -- uzly a následníci, binární, ternární, n-ární, Graf -- orientovaný, neorientovaný Konstrukce struktur: -- prvky = kontejnery s daty a strukturními složkami (záznam) type Ukazatelnaprvek = ^prvek; prvek = record Data: Typdata; { datová složka } ukaz: Ukazatelnaprvek; { strukturní složka } end; Kontejnery jsou svázány ukazateli. Obyčejný seznam: Vytvoření prázdného seznamu. Vložení prvku do seznamu / začátek, konec, aktivní, obecně Odstranění prvku / začátek, konec, aktivní, jinak Změna pořadí prvků / strukturně, datově Průchody / získání jiné datové struktury if aktiv<>nil then begin if aktiv^.Predch<>nil then begin aktiv^.Predch^.Nasled:=aktiv^.Nasled; end else Zac:=aktiv^.Nasled; if aktiv^.Nasled<>nil then begin aktiv^.Nasled^.Predch:=aktiv^.Predch; end else Kon:=aktiv^.Predch; end; Pom:=Zac; if Pom<>nil then begin {neprázdný seznam} if Pom^.D=hledám then begin { rušený prvek je první } Zac:=Zac^.Nasled; Dispose(Pom) end else begin { rušený prvek je jinde } if Pom^.Nasled<>nil then begin { máme kde hledat } while (Pom^.Nasled<>nil) and (Pom^.Nasled^.D<>Hledám) do Pom:=Pom^.Nasled; if Pom^.Nasled<>nil then begin { HURÁ, RUŠÍME!!! } Ruseny:=Pom^.Nasled; Pom^.Nasled:=Ruseny^.Nasled; DISPOSE(RUSENY) end end end end;