• Nie Znaleziono Wyników

Struktury danych dla zbiorów rozª¡cznych Implementacja  drzewa z korzeniem

W dokumencie Część 3 (Stron 166-183)

Ka»dy zbiór przechowywany jako drzewo z korzeniem. Korze« drzewa = reprezentant zbioru.

Ka»dy wierzchoªek drzewa posiada pola:

element zbioru,

wska¹nik do ojca w drzewie (korze« wskazuje na siebie).

Struktur¦ drzewa mo»na tak»e zaimplementowa¢ przy wykorzystaniu tablicy ojców indeksowanej elementami, które grupujemy w zbiory.

50 / 88

A. Mróz, WMiI, UMK

Przeszukiwanie grafu Najkrótsze drogi Zbiory rozª¡czne MST Maksymalny przepªyw

Struktury danych dla zbiorów rozª¡cznych

Implementacja  drzewa z korzeniem.

Ka»dy zbiór przechowywany jako drzewo z korzeniem.

Korze« drzewa = reprezentant zbioru. Ka»dy wierzchoªek drzewa posiada pola:

element zbioru,

wska¹nik do ojca w drzewie (korze« wskazuje na siebie).

Struktur¦ drzewa mo»na tak»e zaimplementowa¢ przy wykorzystaniu tablicy ojców indeksowanej elementami, które grupujemy w zbiory.

50 / 88

A. Mróz, WMiI, UMK

Przeszukiwanie grafu Najkrótsze drogi Zbiory rozª¡czne MST Maksymalny przepªyw

Struktury danych dla zbiorów rozª¡cznych

Implementacja  drzewa z korzeniem.

Ka»dy zbiór przechowywany jako drzewo z korzeniem. Korze« drzewa = reprezentant zbioru.

Ka»dy wierzchoªek drzewa posiada pola:

element zbioru,

wska¹nik do ojca w drzewie (korze« wskazuje na siebie).

Struktur¦ drzewa mo»na tak»e zaimplementowa¢ przy wykorzystaniu tablicy ojców indeksowanej elementami, które grupujemy w zbiory.

50 / 88

A. Mróz, WMiI, UMK

Przeszukiwanie grafu Najkrótsze drogi Zbiory rozª¡czne MST Maksymalny przepªyw

Struktury danych dla zbiorów rozª¡cznych

Implementacja  drzewa z korzeniem.

Ka»dy zbiór przechowywany jako drzewo z korzeniem. Korze« drzewa = reprezentant zbioru.

Ka»dy wierzchoªek drzewa posiada pola: element zbioru,

wska¹nik do ojca w drzewie (korze« wskazuje na siebie).

Struktur¦ drzewa mo»na tak»e zaimplementowa¢ przy wykorzystaniu tablicy ojców indeksowanej elementami, które grupujemy w zbiory.

50 / 88

A. Mróz, WMiI, UMK

Przeszukiwanie grafu Najkrótsze drogi Zbiory rozª¡czne MST Maksymalny przepªyw

Struktury danych dla zbiorów rozª¡cznych

Implementacja  drzewa z korzeniem.

Ka»dy zbiór przechowywany jako drzewo z korzeniem. Korze« drzewa = reprezentant zbioru.

Ka»dy wierzchoªek drzewa posiada pola: element zbioru,

wska¹nik do ojca w drzewie (korze« wskazuje na siebie).

Struktur¦ drzewa mo»na tak»e zaimplementowa¢ przy wykorzystaniu tablicy ojców indeksowanej elementami, które grupujemy w zbiory.

50 / 88

A. Mróz, WMiI, UMK

Przeszukiwanie grafu Najkrótsze drogi Zbiory rozª¡czne MST Maksymalny przepªyw

Struktury danych dla zbiorów rozª¡cznych

Implementacja  drzewa z korzeniem.

Ka»dy zbiór przechowywany jako drzewo z korzeniem. Korze« drzewa = reprezentant zbioru.

Ka»dy wierzchoªek drzewa posiada pola: element zbioru,

wska¹nik do ojca w drzewie (korze« wskazuje na siebie).

Struktur¦ drzewa mo»na tak»e zaimplementowa¢ przy wykorzystaniu tablicy ojców indeksowanej elementami, które grupujemy w zbiory.

50 / 88

A. Mróz, WMiI, UMK

Przeszukiwanie grafu Najkrótsze drogi Zbiory rozª¡czne MST Maksymalny przepªyw

Struktury danych dla zbiorów rozª¡cznych

Implementacja  drzewa z korzeniem.

MakeSet(x)  stworzenie nowego drzewa o jedynym wierzchoªku x. Zªo»ono±¢: O(1).

FindSet(x)  przej±cie po wska¹nikach od x do ojca itp. a» do korzenia. Zªo»ono±¢: O(h), gdzie h = wysoko±¢ drzewa. Union(x, y)  zmiana wska¹nika w korzeniu drzewa Tx

(zawieraj¡cego x) tak aby wskazywaª na korze« drzewa Ty (zawieraj¡cego y).

Zªo»ono±¢: O(1).

51 / 88

A. Mróz, WMiI, UMK

Przeszukiwanie grafu Najkrótsze drogi Zbiory rozª¡czne MST Maksymalny przepªyw

Struktury danych dla zbiorów rozª¡cznych

Implementacja  drzewa z korzeniem.

MakeSet(x)  stworzenie nowego drzewa o jedynym wierzchoªku x. Zªo»ono±¢: O(1).

FindSet(x)  przej±cie po wska¹nikach od x do ojca itp. a» do korzenia. Zªo»ono±¢: O(h), gdzie h = wysoko±¢ drzewa.

Union(x, y)  zmiana wska¹nika w korzeniu drzewa Tx

(zawieraj¡cego x) tak aby wskazywaª na korze« drzewa Ty (zawieraj¡cego y).

Zªo»ono±¢: O(1).

51 / 88

A. Mróz, WMiI, UMK

Przeszukiwanie grafu Najkrótsze drogi Zbiory rozª¡czne MST Maksymalny przepªyw

Struktury danych dla zbiorów rozª¡cznych

Implementacja  drzewa z korzeniem.

MakeSet(x)  stworzenie nowego drzewa o jedynym wierzchoªku x. Zªo»ono±¢: O(1).

FindSet(x)  przej±cie po wska¹nikach od x do ojca itp. a» do korzenia. Zªo»ono±¢: O(h), gdzie h = wysoko±¢ drzewa. Union(x, y)  zmiana wska¹nika w korzeniu drzewa Tx

(zawieraj¡cego x) tak aby wskazywaª na korze« drzewa Ty (zawieraj¡cego y).

Zªo»ono±¢: O(1).

51 / 88

A. Mróz, WMiI, UMK

Przeszukiwanie grafu Najkrótsze drogi Zbiory rozª¡czne MST Maksymalny przepªyw

Struktury danych dla zbiorów rozª¡cznych

Implementacja  drzewa z korzeniem.

Dwie heurystyki:

1 Š¡czenie wg wysoko±ci: drzewo o mniejszej wysoko±ci doª¡czamy do drzewa o wi¦kszej wysoko±ci (+ uaktualnienie wysoko±ci).

2 Kompresja drogi: stosowana przy operacji FindSet(x)  polega na zmianie wska¹ników we wszystkich wierzchoªkach na drodze od x do korzenia tak, by wskazywaªy na korze«.

52 / 88

A. Mróz, WMiI, UMK

Przeszukiwanie grafu Najkrótsze drogi Zbiory rozª¡czne MST Maksymalny przepªyw

Struktury danych dla zbiorów rozª¡cznych

Implementacja  drzewa z korzeniem.

Dwie heurystyki:

1 Š¡czenie wg wysoko±ci: drzewo o mniejszej wysoko±ci doª¡czamy do drzewa o wi¦kszej wysoko±ci (+ uaktualnienie wysoko±ci).

2 Kompresja drogi: stosowana przy operacji FindSet(x)  polega na zmianie wska¹ników we wszystkich wierzchoªkach na drodze od x do korzenia tak, by wskazywaªy na korze«.

52 / 88

A. Mróz, WMiI, UMK

Przeszukiwanie grafu Najkrótsze drogi Zbiory rozª¡czne MST Maksymalny przepªyw

Struktury danych dla zbiorów rozª¡cznych

Implementacja  drzewa z korzeniem.

Implementacja z uwzgl¦dnieniem heurystyk.

Oznaczenia:

h(x) = wysoko±¢ wierzchoªka x (∈ N),

ojciec(x) = ojciec wierzchoªka x (wska¹nik lub odwoªanie do tablicy ojców). MakeSet(x) 1 begin 2 ojciec(x) := x; 3 h(x) := 0 4 end; 53 / 88 A. Mróz, WMiI, UMK N

Przeszukiwanie grafu Najkrótsze drogi Zbiory rozª¡czne MST Maksymalny przepªyw

Struktury danych dla zbiorów rozª¡cznych

Implementacja  drzewa z korzeniem.

Implementacja z uwzgl¦dnieniem heurystyk. Oznaczenia:

h(x) = wysoko±¢ wierzchoªka x (∈ N),

ojciec(x) = ojciec wierzchoªka x (wska¹nik lub odwoªanie do tablicy ojców). MakeSet(x) 1 begin 2 ojciec(x) := x; 3 h(x) := 0 4 end; 53 / 88 A. Mróz, WMiI, UMK N

Przeszukiwanie grafu Najkrótsze drogi Zbiory rozª¡czne MST Maksymalny przepªyw

Struktury danych dla zbiorów rozª¡cznych

Implementacja  drzewa z korzeniem.

Implementacja z uwzgl¦dnieniem heurystyk. Oznaczenia:

h(x) = wysoko±¢ wierzchoªka x (∈ N),

ojciec(x) = ojciec wierzchoªka x (wska¹nik lub odwoªanie do tablicy ojców). MakeSet(x) 1 begin 2 ojciec(x) := x; 3 h(x) := 0 4 end; 53 / 88 A. Mróz, WMiI, UMK N

Przeszukiwanie grafu Najkrótsze drogi Zbiory rozª¡czne MST Maksymalny przepªyw

Struktury danych dla zbiorów rozª¡cznych

Implementacja  drzewa z korzeniem.

Implementacja z uwzgl¦dnieniem heurystyk  ª¡czenie wg wysoko±ci:

Link(x, y) 1 begin 2 ifh(x) > h(y)then 3 ojciec(y) := x 4 else begin 5 ojciec(x) := y; 6 ifh(x) = h(y)then 7 h(y) := h(y) + 1 8 end 9 end; Union(x, y) 1 begin 2 Link(FindSet(x), FindSet(y)) 3 end; 54 / 88 A. Mróz, WMiI, UMK N

Przeszukiwanie grafu Najkrótsze drogi Zbiory rozª¡czne MST Maksymalny przepªyw

Struktury danych dla zbiorów rozª¡cznych

Implementacja  drzewa z korzeniem.

Implementacja z uwzgl¦dnieniem heurystyk  ª¡czenie wg wysoko±ci:

Link(x, y) 1 begin 2 ifh(x) > h(y)then 3 ojciec(y) := x 4 else begin 5 ojciec(x) := y; 6 ifh(x) = h(y)then 7 h(y) := h(y) + 1 8 end 9 end; Union(x, y) 1 begin 2 Link(FindSet(x), FindSet(y)) 3 end; 54 / 88 A. Mróz, WMiI, UMK N

Przeszukiwanie grafu Najkrótsze drogi Zbiory rozª¡czne MST Maksymalny przepªyw

Struktury danych dla zbiorów rozª¡cznych

Implementacja  drzewa z korzeniem.

Implementacja z uwzgl¦dnieniem heurystyk  kompresja drogi:

FindSet(x)

1 begin

2 if x <> ojciec(x)then

3 ojciec(x) := FindSet( ojciec(x) );

4 returnojciec(x)

5 end;

55 / 88

A. Mróz, WMiI, UMK

Przeszukiwanie grafu Najkrótsze drogi Zbiory rozª¡czne MST Maksymalny przepªyw

Struktury danych dla zbiorów rozª¡cznych

W dokumencie Część 3 (Stron 166-183)

Powiązane dokumenty