Pobieranie prezentacji. Proszę czekać

Pobieranie prezentacji. Proszę czekać

STRUKTURY DANYCH. DRZEWA BINARNE PEŁNE DRZEWO BINARNE ilość węzłów = 15 ( n = 15 ) wysokość = 3 ( h T = 3 ) h = log 2 n, n - ilość węzłów w pełnym drzewie.

Podobne prezentacje


Prezentacja na temat: "STRUKTURY DANYCH. DRZEWA BINARNE PEŁNE DRZEWO BINARNE ilość węzłów = 15 ( n = 15 ) wysokość = 3 ( h T = 3 ) h = log 2 n, n - ilość węzłów w pełnym drzewie."— Zapis prezentacji:

1 STRUKTURY DANYCH

2 DRZEWA BINARNE

3 PEŁNE DRZEWO BINARNE ilość węzłów = 15 ( n = 15 ) wysokość = 3 ( h T = 3 ) h = log 2 n, n - ilość węzłów w pełnym drzewie binarnym n = … + 2 h = 2 h T

4 * * e / c b f a - + d metoda pre-order (wzdłużna) - notacja przedrostkowa metoda in-order ( poprzeczna) - notacja powszechnie stosowana metoda post-order (wsteczna ) - notacja przyrostkowa METODY PRZEGLĄDANIA DRZEWA BINARNEGO

5 * * e / c b f a - + d metoda in-order : a + b/c * d - e * f

6 type wsk= ^wezel; wezel = record lewe: wsk; klucz : integer; prawe: wsk end ; var drzewo : wsk ; IMPLEMENTACJA W PASCALU

7 ZNAJDOWANIE W DRZEWIE POSZUKIWAŃ BINARNYCH ELEMENTU O PODANYM KLUCZU klucz = 22 drzewo

8 PRZEGLĄDANIE BST METODĄ "IN-ORDER" DAJE W WYNIKU LISTĘ POSORTOWANYCH KLUCZY PRZECHOWYWANYCH W WĘZŁACH A D E G H K L M N O P T V

9 WSTAWIANIE DO DRZEWA BST ELEMENTU O PODANYM KLUCZU drzewo klucz = 21

10 PROCEDURA WSTAWIANIA ELEMENTU O KLUCZU Z DO DRZEWA POSZUKIWAŃ BINARNYCH TREE-INSERT (T,z) begin y:= NIL; x:= root(T); {korzeń drzewa T} while x NIL do begin y := x; if key(z) < key(x) then x := left(x) else x:= right(x); end; p(z) := y; { p(z) - ojciec węzła z} if y = NIL then root(T) := z else if key(z) < key(y) then left(y) := z else right(y) := z; end;

11 KOPCE BINARNE

12 JAKO PRAWIE PEŁNE DRZEWO BINARNE T r : ( klucz(left(v)) klucz(v) and klucz(right(v)) klucz(v) ) v V(T) ( klucz(v) klucz(PARENT(v) ) v V(T) v r

13 PARENT (i) return i/2 ; LEFT (i) RIHGT (i) return 2*i; return 2*i +1; JAKO TABLICA A[ 1..n ], n > 0 ( A[i] A[ PARENT (i) ] ) 2 i n

14 OPERACJE NA KOPCACH BINARNYCH BUILD-HEAP EXTRACT -MAX INSERT

15 TWORZENIE KOPCA BINARNEGO BUILD-HEAP(A,n); begin hsize(A) := n; for i:= n/2 downto 1 do HEAPIFY (A, i ); end;

16 HEAPIFY (A, hsize,i) ; begin lewy := 2*i; prawy := 2*i+1; if lewy <= hsize then naj := indeks elementu większego spośród elementów: A[lewy], A[i]; if prawy <= hsize then naj := indeks elementu większego spośród elementów: A[prawy], A[naj] if naj <> i then begin zamień A[i] z A[naj]; HEAPIFY (A, naj) end; PRZYWRACANIE WŁASNOŚCI KOPCA BINARNEGO

17 HEAP-EXTRACT-MAX (A, hsize ) begin if hsize < 1 then error; max := A[1]; A[1] := A[hsize]; hsize := hsize - 1; HEAPIFY (A, 1); return max; end;

18 HEAP-INSERT (A, klucz, hsize); begin hsize := hsize + 1; i := hsize; while i > 1 and A[PARENT(i)] < klucz do begin A[i] := A[PARENT(i)] ; i:= PARENT(i); end; A[i] := klucz; end;

19 SORTOWANIE PRZEZ KOPCOWANIE HEAPSORT (A, n); begin hsize := n; BUILD-HEAP (A); for i := n downto 2 do begin zamień A[1] z A[i]; hsize := hsize -1; HEAPIFY (A,1); end;

20 STRUKTURY DANYCH DLA ZBIORÓW ROZŁĄCZNYCH

21 X = {x 1,..., x n } S = { S 1, S 2,..., S k } - rodzina zbiorów parami rozłącznych, S i X, i =1,...,k (wyróżniamy element x S i - reprezentant zbioru S i ) S i S Oznaczenie : S x - zbiór z rodziny S o reprezentancie x

22 OPERACJE NA RODZINIE S : MAKE-SET(x) x S 1 S 2... S k - tworzy jednoelementowy zbiór zawierający x, którego reprezentantem jest x UNION(x,y) - dodaje do rodziny S zbiór S z = S x S y, gdzie z jest dowolnym elementem ze zbioru S x S y, usuwa zbiory S x, S y z S FIND - SET(x) - znajduje reprezentanta zbioru zawierającego element x

23 PRZYKŁADY ZASTOSOWANIA STRUKTUR DANYCH DLA ZBIORÓW ROZŁĄCZNYCH : rozpoznawanie spójnych składowych w grafie niezorientownym algorytm Kruskala

24 LISTY DRZEWA MAKE-SET(x) O(1) O(1) UNION(x,y) O(|S x |) O(1) FIND - SET(x) O(1) O(|S x |) REPREZENTACJE ZBIORÓW ROZŁĄCZNYCH :


Pobierz ppt "STRUKTURY DANYCH. DRZEWA BINARNE PEŁNE DRZEWO BINARNE ilość węzłów = 15 ( n = 15 ) wysokość = 3 ( h T = 3 ) h = log 2 n, n - ilość węzłów w pełnym drzewie."

Podobne prezentacje


Reklamy Google