Listy z powiązaniami, szkoła, Algorytmy i Struktury Danych


Listy z dowiązaniami

Porządek na liście liniowy, określony przez wskaźniki związane z każdym elementem listy.

Lista dwukierunkowa - key, next, prev + ew. inne dane

prev[x] = nil x nie ma poprzednika x głowa listy (1 elem.)

next[x] = nil x nie ma następnika x ogon listy (ost.elem.)

head[L] - wskazuje na 1-szy element listy

head[L] = nil lista pusta

0x08 graphic

0x08 graphic

0x08 graphic

0x08 graphic

0x08 graphic

0x08 graphic

Wyszukiwanie na liscie z dowiązaniami

search_l (L, k);

x:=head[L];

while x ≠ nil and key[x] ≠ k do x:=next[x];

Wstawianie do listy z dowiązaniami ( na początek listy)

0x08 graphic

insert_l (L, x); {wskaźnik do x znany}

next[x] := head [L];

if head[L] ≠ nil then prev[head[L]] := x

head [L] := x; prev[x]:=nil;

{jeżeli dany tylko klucz x , to najpierw search(L, x)}

Usuwanie z listy z dowiązaniami

0x08 graphic

delete_l (L, x);

if prev[x] ≠ nil then next[prev[x]] := next[x]

else head[L] := next[x];

if next[x] ≠ nil then prev[next[x]] := prev[x]

Wartownicy

Wartownik - sztuczny element (nil [L])pozwalający uprościć warunki brzegowe.

Wartownik jest rekordem o takich samych polach jak pozostałe elementy listy.

Wystąpienia nil zamienione na wskażnik do wartownika nil[L].

0x08 graphic

next[nil[L]] na głowę listy

prev[nil[L]] na ogon listy

zwykła lista dwukierunkowa lista cykliczna

next[ogon listy] nil[L]

prev[głowa listy] nil[L]

zamiast head[L] - next[nil[L]]

Lista pusta (z wartownikiem)

0x08 graphic

Procedury dla listy z wartownikiem

Wyszukiwanie na liscie z dowiązaniami (prawie b/z)

search_lw (L, k);

x:=next [nil [L]];

while x ≠ nil [L] and key[x] ≠ k do x:=next[x];

Wstawianie do listy z dowiązaniami ( na początek listy)

insert_lw (L, x); {wskaźnik do x znany}

prev[next [nil [L]]] := x;

next [nil [L]] := x;

prev[x]:=nil [L];

Usuwanie z listy z dowiązaniami

delete_lw (L, x);

next[prev[x]] := next[x]

prev[next[x]] := prev[x]

Reprezentacja tablicowa listy

0x08 graphic

1

2

LIsty z dowiązaniami s

head [L]

/

9

1

prev

4

16

/

25

w

2

3

a

head [L]

/

a

4

key

next

5

1

7

L

8

7

6

5

4

3

2

Lista po usunięciu elementu z kluczem 4

key

next

/

16

4

/

1

9

head [L]

/

/

9

16

7

1

25

/

head [L]

1

16

9

5

2

nil [L]

/

prev

16

4

1

9

head [L]

nil [L]

x

Lista dwukierunkowa [ / - nil ]

Lista po wstawieniu na początek elementu z kluczem 25

b

-/

x

#



Wyszukiwarka

Podobne podstrony:
Algorytmy i struktury danych 04 Listy
ALS - 004-000 - Zajęcia - Listy - teoria, Informatyka - uczelnia, WWSI i WAT, wwsi, SEM II, Algorytm
Algorytmy i struktury danych Wykład 1 Reprezentacja informacji w komputerze
Algorytmy i struktury danych Wykład 3 i 4 Tablice, rekordy i zbiory
Algorytmy i struktury danych, AiSD C Lista04
Algorytmy i struktury danych 08 Algorytmy geometryczne
Instrukcja IEF Algorytmy i struktury danych lab2
Algorytmy, struktury danych i techniki programowania wydanie 3
Algorytmy i struktury danych 1
Ściaga sortowania, algorytmy i struktury danych
ukl 74xx, Informatyka PWr, Algorytmy i Struktury Danych, Architektura Systemów Komputerowych, Archit
cw 0 1, pwr, informatyka i zarządzanie, Informatyka, algorytmy i struktury danych
AIDS w7listy, studia, Semestr 2, Algorytmy i struktury danych AISD, AIDS
k balinska projektowanie algorytmow i struktur danych
W10seek, studia, Semestr 2, Algorytmy i struktury danych AISD, AIDS
ALS - 001-000 - Zadania - ZAJECIA, Informatyka - uczelnia, WWSI i WAT, wwsi, SEM II, Algorytmy i Str

więcej podobnych podstron