Grafy (3): drzewa. Wykłady z matematyki dyskretnej dla informatyków i teleinformatyków. UTP Bydgoszcz

Save this PDF as:
 WORD  PNG  TXT  JPG

Wielkość: px
Rozpocząć pokaz od strony:

Download "Grafy (3): drzewa. Wykłady z matematyki dyskretnej dla informatyków i teleinformatyków. UTP Bydgoszcz"

Transkrypt

1 Grafy (3): drzewa Wykłady z matematyki dyskretnej dla informatyków i teleinformatyków UTP Bydgoszcz 13 (Wykłady z matematyki dyskretnej) Grafy (3): drzewa 13 1 / 107

2 Drzewo Definicja. Drzewo to graf acykliczny i spójny. Wniosek. Drzewo nie ma pętli i nie ma krawędzi wielokrotnych. Przykład. (Wykłady z matematyki dyskretnej) Grafy (3): drzewa 13 2 / 107

3 Las Definicja. Las to graf acykliczny. Wniosek. Spójne składowe lasu to drzewa. Przykład. (Wykłady z matematyki dyskretnej) Grafy (3): drzewa 13 3 / 107

4 Jeszcze kilka definicji Liść drzewa to wierzchołek o stopniu 1. Przykład. (Wykłady z matematyki dyskretnej) Grafy (3): drzewa 13 4 / 107

5 Liście Fakt. Każde drzewo skończone o co najmniej jednej krawędzi ma co najmniej dwa liście. Uzasadnienie. Niech w 1... w m będzie najdłuższą drogą acykliczną w drzewie. Wtedy wierzchołki w 1 oraz w m są liśćmi: oczywiście w 1 w m (droga jest acykliczna) i mają stopień 1 (gdyby nie, to istniałaby droga dłuższa od w 1... w m ). (Wykłady z matematyki dyskretnej) Grafy (3): drzewa 13 5 / 107

6 Drzewa Twierdzenie. Drzewo mające n wierzchołków ma n 1 krawędzi. Dowód indukcyjny. Dla n = 2 drzewo ma tylko jedną krawędź. (Wykłady z matematyki dyskretnej) Grafy (3): drzewa 13 6 / 107

7 Drzewo mające n wierzchołków ma n 1 krawędzi Załóżmy, że dla n > 2 każde drzewo mające n wierzchołków ma n 1 krawędzi. Niech T będzie drzewem o n + 1 wierzchołkach. Z poprzedniego faktu wiemy, że T ma liść. Jeśli usuniemy z T wierzchołek będący liściem i usuniemy krawędź wychodzącą z tego wierzchołka, to otrzymamy drzewo o n wierzchołkach. Z założenia indukcyjnego ten graf ma n 1 krawędzi, więc T ma n krawędzi. (Wykłady z matematyki dyskretnej) Grafy (3): drzewa 13 7 / 107

8 Drzewa spinające Fakt. Jeśli G jest grafem spójnym i jeśli D jest minimalnym podrafem w G łączącym wszystkie wierzchołki, to D jest acykliczny (czyli jest drzewem). Uzasadnienie. Gdyby D zawierał cykl, to usuwając jedną krawędź tego cyklu nadal dostaniemy podraf łączący wszystkie wierzchołki G, co jest sprzeczne z minimalnością G. Definicja. Drzewem spinającym D grafu G jest drzewo zawierające wszystkie wierzchołki tego grafu. (Wykłady z matematyki dyskretnej) Grafy (3): drzewa 13 8 / 107

9 Drzewa spinające Przykład. Graf i jedno z setek drzew spinających tego grafu. (Wykłady z matematyki dyskretnej) Grafy (3): drzewa 13 9 / 107

10 Drzewo spinające Twierdzenie. Każdy graf spójny ma przynajmniej jedno drzewo spinające. Dowód. Graf G jest spójny. Niech H będzie podgrafem spójnym, który zawiera wszystkie wierzchołki G i możliwie najmniejszą liczbę krawędzi. Gdyby H zawierał cykl, to usuwając jedną krawędź tego cyklu nadal dostaniemy podraf spójny łączący wszystkie wierzchołki G, co jest sprzeczne z minimalnością H. (Wykłady z matematyki dyskretnej) Grafy (3): drzewa / 107

11 Algorytm DRZEWO(v) Jeśli graf G jest spójny, to algorytm znajdzie drzewo spinające. Jeśli G nie jest spójny, to algorytm znajdzie drzewo spinające spójnej składowej grafu G zawierającej wierzchołek v. Na wejściu: wierzchołek v grafu G. Na wyjściu: zbiór krawędzi E drzewa spinającego. Zmienna pomocnicza: ciąg V odwiedzanych wierzchołków. Niech V := {v} oraz E :=. Dopóki istnieje krawędź w G łącząca wierzchołek z V z wierzchołkiem spoza V, to wybierz taką krawędź łączącą u V z w / V. Dołącz w do V oraz krawędź {u, v} do E. (Wykłady z matematyki dyskretnej) Grafy (3): drzewa / 107

12 Przykład, algorytm DRZEWO(1) V := {1}; E :=. Wybierz krawędź {1, 2}. V := {1, 2}; E := {{1, 2}}. Wybierz krawędź {1, 3}. V := {1, 2, 3}; E := {{1, 2}, {1, 3}}. Wybierz krawędź {1, 4}. V := {1, 2, 3, 4}; E := {{1, 2}, {1, 3}, {1, 4}}. Wybierz krawędź {2, 5}. V := {1, 2, 3, 4, 5}; E := {{1, 2}, {1, 3}, {1, 4}, {2, 5}}. Wybierz krawędź {3, 6}. V := {1, 2, 3, 4, 5, 6}; E := {{1, 2}, {1, 3}, {1, 4}, {2, 5}, {3, 6}}. Wybierz krawędź {4, 7}. V := {1, 2, 3, 4, 5, 6, 7}; E := {{1, 2}, {1, 3}, {1, 4}, {2, 5}, {3, 6}, {4, 7}}. Wybierz krawędź {5, 8}. V := {1, 2, 3, 4, 5, 6, 7, 8}; E := {{1, 2}, {1, 3}, {1, 4}, {2, 5}, {3, 6}, {4, 7}, {5, 8}}. (Wykłady z matematyki dyskretnej) Grafy (3): drzewa / 107

13 Przykład, algorytm DRZEWO(2) V := {2}; E :=. Wybierz krawędź {2, 4}. V := {2, 4}; E := {{2, 4}}. Wybierz krawędź {4, 6}. V := {2, 4, 6}; E := {{2, 4}, {4, 6}}. Wybierz krawędź {6, 9}. V := {2, 4, 6, 9}; E := {{2, 4}, {4, 6}, {6, 9}}. Wybierz krawędź {9, 8}. V := {2, 4, 6, 9, 8}; E := {{2, 4}, {4, 6}, {6, 9}, {9, 8}}. (Wykłady z matematyki dyskretnej) Grafy (3): drzewa / 107

14 Przykład, algorytm DRZEWO(3) V := {3}; E :=. Wybierz krawędź {3, 1}. V := {3, 1}; E := {{3, 1}}. Wybierz krawędź {1, 5}. V := {3, 1, 5}; E := {{3, 1}, {1, 5}}. Wybierz krawędź {3, 7}. V := {3, 1, 5, 7}; E := {{3, 1}, {1, 5}, {3, 7}}. (Wykłady z matematyki dyskretnej) Grafy (3): drzewa / 107

15 Algorytm LAS Na wejściu: graf G(V G, E G ) (skończony). Na wyjściu: zbiór krawędzi EE lasu spinającego. Niech VV := oraz EE :=. Dopóki VV V G wykonaj: wybierz v V G \ VV wykonaj DRZEWO(v) otrzymując zbiór wierzchołków V i zbiór krawędzi E drzewa spinającego tej składowej spójnej grafu, która zawiera v dołącz wierzchołki z V do VV oraz krawędzie z E do EE (Wykłady z matematyki dyskretnej) Grafy (3): drzewa / 107

16 Przykład, algorytm LAS VV := {1}; EE :=. Wybierz 1 V G \ VV. Wykonaj DRZEWO(1). V := {1, 2, 3, 4, 5, 6, 7, 8} E := {{1, 2}, {1, 3}, {1, 4}, {2, 5}, {3, 6}, {4, 7}, {5, 8}}. Dołącz wierzchołki z V do VV oraz krawędzie z E do EE VV := {1, 2, 3, 4, 5, 6, 7, 8} EE := {{1, 2}, {1, 3}, {1, 4}, {2, 5}, {3, 6}, {4, 7}, {5, 8}}. VV = V G ; zakończ. (Wykłady z matematyki dyskretnej) Grafy (3): drzewa / 107

17 Przykład, algorytm LAS VV := ; EE :=. Wybierz 2 V G \ VV. Wykonaj DRZEWO(2). V := {2, 4, 6, 9, 8} E := {{2, 4}, {4, 6}, {6, 9}, {9, 8}}. Dołącz wierzchołki z V do VV oraz krawędzie z E do EE VV := {2, 4, 6, 9, 8} EE := {{2, 4}, {4, 6}, {6, 9}, {9, 8}}. VV V G ; aa aa (Wykłady z matematyki dyskretnej) Grafy (3): drzewa / 107

18 Przykład, algorytm LAS, ciąg dalszy VV := {2, 4, 6, 8, 9} EE := {{2, 4}, {4, 6}, {6, 9}, {9, 8}}. VV V G ; wybierz 3 V G \ VV. Wykonaj DRZEWO(3). V := {3, 1, 5, 7}; E := {{3, 1}, {1, 5}, {3, 7}}. Dołącz wierzchołki z V do VV oraz krawędzie z E do EE VV := {2, 4, 6, 9, 8, 1, 3, 5, 7} EE := {{2, 4}, {4, 6}, {6, 9}, {9, 8}, {3, 1}, {1, 5}, {3, 7}}. VV = V G ; zakończ. (Wykłady z matematyki dyskretnej) Grafy (3): drzewa / 107

19 Korzeń Definicja. Drzewo z wyróżnionym korzeniem to drzewo, w którym wyróżniamy jeden z wierzchołków, nazywany korzeniem. Przykład. Często korzeń rysujemy na górze. (Wykłady z matematyki dyskretnej) Grafy (3): drzewa / 107

20 Drzewo poszukiwań binarnych Obserwacja. Zestaw słów, ciąg liczb, czy inny zbiór z ustalonym porządkiem można przedstawić w postaci drzewa z wyróżnionym korzeniem zwanego drzewem poszukiwań binarnych. W takim drzewie każdy wierzchołek jest co najwyżej trzeciego stopnia. (Precyzyjniejsza definicja pojawi się za cztery slajdy.) (Wykłady z matematyki dyskretnej) Grafy (3): drzewa / 107

21 Drzewo poszukiwań binarnych Przykład. Etykieta każdego wierzchołka jest (w porządku alfabetycznym) dalsza niż sąsiedniego wierzchołka lewego-dolnego, a bliższa niż sąsiedniego wierzchołka dolnego-prawego. Ponadto w tym przykładzie na każdym poziomie etykieta z lewej strony jest wcześniejsza od etykiety po prawej. ja ga on be gu my wy dr ir ty (Wykłady z matematyki dyskretnej) Grafy (3): drzewa / 107

22 Drzewo genealogiczne Niech T będzie drzewem z wyróżnionym korzeniem k. Umownie potraktujmy T jak graf skierowany (zwrot strzałek określa grawitacja ). Przyjmijmy, że jeśli para (u, v) jest krawędzią tego drzewa, to wierzchołek u leży bliżej k niż wierzchołek v. Definicja. Jeśli para (u, v) jest krawędzią drzewa T, to U jest rodzicem v, natomiast v jest dzieckiem u. Ponadto, w jest potomkiem u, jeśli w u oraz u jest jakimś wierzchołkiem jedynej drogi prostej z korzenia do wierczhołka w. Definicja. Jeśli v jest wierzchołkiem, to poddrzewo Y v o korzeniu v jest drzewem składającym się z v, z wszystkich jego potomków oraz wszystkich krawędzi łączących te wierzchołki. Fakt. Każdy wierzchołek (z wyjątkiem korzenia) ma dokładnie jednego rodzica. Rodzic może mieć więcej niż jedno dziecko. (Wykłady z matematyki dyskretnej) Grafy (3): drzewa / 107

23 Poddrzewa Przykład. Drzewo i jego niejednowierzchołkowe poddrzewa. ja ga on ga on be gu my wy be gu my wy gu wy dr ir ty dr ir ty dr ir ty (Wykłady z matematyki dyskretnej) Grafy (3): drzewa / 107

24 Drzewo binarne Definicja. Drzewo binarne to drzewo z wyróżnionym korzeniem, w którym każdy wierzchołek (węzeł) ma co najwyżej dwoje dzieci: albo dziecko lewe, albo prawe, albo dwoje dzieci (lewe i prawe), albo nie ma dzieci. Definicja. Drzewo o m rozgałęzieniach (m > 2) to drzewo, w którym każdy rodzic ma co najwyżej m dzieci oznaczanych różnymi liczbami ze zbioru {1, 2,..., m}. Definicja. Drzewo o m rozgałęzieniach (m > 2) lub drzewo binarne (m = 2) jest drzewem regularnym gdy każdy rodzic ma dokładnie m dzieci. (Wykłady z matematyki dyskretnej) Grafy (3): drzewa / 107

25 Wysokość drzewa Definicja. Numer poziomu wierzchołka v to długość jedynej drogi prostej od korzenia do v. Numer korzenia to zero. Definicja. Wysokość drzewa z wyróżnionym korzeniem to największy numer poziomu wierzchołka (długość najdłuższej drogi prostej wychodzącej z korzenia). Definicja. Regularne drzewo o m rozgałęzieniach (m > 2) lub regularne drzewo binarne (m = 2) jest pełnym drzewem o m rozgałęzieniach, jeśli wszystkie liście mają numer poziomu równy wysokości drzewa. (Wykłady z matematyki dyskretnej) Grafy (3): drzewa / 107

26 Przykład, pełne drzewo o trzech rozgałęzieniach i wysokości dwa. Drzewo to ma 13 wierzchołków, 13 = (Wykłady z matematyki dyskretnej) Grafy (3): drzewa / 107

27 Drzewo pełne Fakt. Pełne drzewo o m rozgałęzieniach i wysokości h ma wierzchołków. mh+1 1 m 1 Uzasadnienie. Na poziomie pierwszym mamy m wierzchołków (korzeń ma m dzieci). Każy z tych wierzcholków ma m dzieci, więc na poziomie drugim mamy m 2 dzieci,... Sumując, mamy na wszystkich poziomach 1 + m + m m h wierzchołków. Stosujemy wzór na sumę h + 1 początkowych wyrazów ciągu geometrycznego: 1 + m + m m h = 1 1 mh+1 1 m = mh+1 1 m 1. (Wykłady z matematyki dyskretnej) Grafy (3): drzewa / 107

28 Drzewo pełne Fakt. Pełne drzewo o m rozgałęzieniach i wysokości h ma mh 1 m 1 oraz m h liści. rodziców Przykład. Pełne drzewo o trzech rozgałęzieniach i wysokości dwa ma 4 rodziców i 9 liści. (Wykłady z matematyki dyskretnej) Grafy (3): drzewa / 107

29 Drzewo uporządkowane Definicja. Uporządkowane drzewo z wyróżnionym korzeniem to takie drzewo, w którym uporządkujemy dzieci każdego rodzica (od strony lewej do prawej). Przykład. Przyjmujemy O < R. Graf ten może przedstawiać wyniki powtarzanego rzutu monetą. O R OO OR RO RR OOO OOR ORO ORR ROO ROR RRO RRR (Wykłady z matematyki dyskretnej) Grafy (3): drzewa / 107

30 Algorytm DRZEWO i LAS Uwaga. Aby sprawdzić, czy graf jest spójny wystarczy sprawdzić, czy algorytm DRZEWO(v) (dla dowolnego wierzchołka v) tworzy drzewo zawierające wszystkie wierzchołki grafu lub, równoważnie, czy algorytm LAS tworzy tylko jedno drzewo. Uwaga. Aby sprawdzić, czy graf G jest acykliczny wystarczy sprawdzić, czy utworzony las spinający jest całym grafem (czy EE = E G ). (Wykłady z matematyki dyskretnej) Grafy (3): drzewa / 107

31 Algorytmy przeszukiwania w głąb drzewa z wyróżnionym korzeniem Podamy trzy algorytmy rekurencyjne przeszukiwania w głąb (przeszukiwania z nawrotami). Porządek prefiksowy (preorder): korzeń jest pierwszy, rodzice znajdują się przed dziećmi. Porządek postfiksowy (postorder): korzeń jest ostatni, rodzice znajdują się po dzieciach. Porządek inorder w drzewie binarnym: lewe dziecko znajduje się przed swoim rodzicem, a prawe po. W tych trzech algorytmach sposób poruszania się jest taki sam. Startujemy z wierzchołka ( patrzymy w dół ) stosując zasady: trzymaj się prawej, jeśli koniec drogi to zawróć. Inna jest tylko kolejność wpisywania wierzchołków na listę. (Wykłady z matematyki dyskretnej) Grafy (3): drzewa / 107

32 Algorytm PREORDER(v) Na wejściu: uporządkowane skończone drzewo z wyróżnionym korzeniem v. Na wyjściu: lista L(v) wszystkich wierzchołków tego drzewa, na której każdy rodzic jest umieszczony przed swoimi dziećmi. Zapisz v na liście L(v) dla każdego dziecka w wierzchołka v (w porządku od lewej strony do prawej) PREORDER(w) (otrzymamy tu listę złożoną z w i jego potomków) dołącz L(w) na końcu dotychczas uzyskanej listy L(v) Obserwacja. Algorytm ten umieszcza wierzchołek na liście w momencie, gdy odwiedza go po raz pierwszy. (Wykłady z matematyki dyskretnej) Grafy (3): drzewa / 107

33 Algorytm PREORDER(v), przykład v 4 v 5 v 6 v 7 v 8 v 9 0 Wpisz na listę. L( ) =. Weź pierwsze (lewe) dziecko v 2 rodzica. Wpisz v 2 na listę L(v 2 ) = v 2. Weź pierwsze (lewe) dziecko v 4 rodzica v 2. Wpisz v 4 na listę L(v 4 ) = v 4. Wierzchołek v 4 nie ma dzieci. L(v 2 ) = v 2 v 4. Weź kolejne dziecko v 5 rodzica v 2. Wpisz v 5 na listę L(v 5 ) = v 5. Weź pierwsze (lewe) dziecko v 9 rodzica v 5. Wpisz v 9 na listę L(v 9 ) = v 9. Wierzchołek v 9 nie ma dzieci. L(v 5 ) = v 5 v 9. Weź kolejne dziecko 0 rodzica v 5. Wpisz 0 na listę L(0 ) = 0. Wierzchołek 0 nie ma dzieci. L(v 5 ) = v 5 v 9 0. (Wykłady z matematyki dyskretnej) Grafy (3): drzewa / 107

34 Algorytm PREORDER(v), przykład v 4 v 5 v 6 v 7 v 8 v 9 0 Wpisz na listę. L( ) =. Weź pierwsze (lewe) dziecko v 2 rodzica. Wpisz v 2 na listę L(v 2 ) = v 2. Weź pierwsze (lewe) dziecko v 4 rodzica v 2. Wpisz v 4 na listę L(v 4 ) = v 4. Wierzchołek v 4 nie ma dzieci. L(v 2 ) = v 2 v 4. Weź kolejne dziecko v 5 rodzica v 2. Wpisz v 5 na listę L(v 5 ) = v 5. Weź pierwsze (lewe) dziecko v 9 rodzica v 5. Wpisz v 9 na listę L(v 9 ) = v 9. Wierzchołek v 9 nie ma dzieci. L(v 5 ) = v 5 v 9. Weź kolejne dziecko 0 rodzica v 5. Wpisz 0 na listę L(0 ) = 0. Wierzchołek 0 nie ma dzieci. L(v 5 ) = v 5 v 9 0. (Wykłady z matematyki dyskretnej) Grafy (3): drzewa / 107

35 Algorytm PREORDER(v), przykład v 4 v 5 v 6 v 7 v 8 v 9 0 Wpisz na listę. L( ) =. Weź pierwsze (lewe) dziecko v 2 rodzica. Wpisz v 2 na listę L(v 2 ) = v 2. Weź pierwsze (lewe) dziecko v 4 rodzica v 2. Wpisz v 4 na listę L(v 4 ) = v 4. Wierzchołek v 4 nie ma dzieci. L(v 2 ) = v 2 v 4. Weź kolejne dziecko v 5 rodzica v 2. Wpisz v 5 na listę L(v 5 ) = v 5. Weź pierwsze (lewe) dziecko v 9 rodzica v 5. Wpisz v 9 na listę L(v 9 ) = v 9. Wierzchołek v 9 nie ma dzieci. L(v 5 ) = v 5 v 9. Weź kolejne dziecko 0 rodzica v 5. Wpisz 0 na listę L(0 ) = 0. Wierzchołek 0 nie ma dzieci. L(v 5 ) = v 5 v 9 0. (Wykłady z matematyki dyskretnej) Grafy (3): drzewa / 107

36 Algorytm PREORDER(v), przykład v 4 v 5 v 6 v 7 v 8 v 9 0 Wpisz na listę. L( ) =. Weź pierwsze (lewe) dziecko v 2 rodzica. Wpisz v 2 na listę L(v 2 ) = v 2. Weź pierwsze (lewe) dziecko v 4 rodzica v 2. Wpisz v 4 na listę L(v 4 ) = v 4. Wierzchołek v 4 nie ma dzieci. L(v 2 ) = v 2 v 4. Weź kolejne dziecko v 5 rodzica v 2. Wpisz v 5 na listę L(v 5 ) = v 5. Weź pierwsze (lewe) dziecko v 9 rodzica v 5. Wpisz v 9 na listę L(v 9 ) = v 9. Wierzchołek v 9 nie ma dzieci. L(v 5 ) = v 5 v 9. Weź kolejne dziecko 0 rodzica v 5. Wpisz 0 na listę L(0 ) = 0. Wierzchołek 0 nie ma dzieci. L(v 5 ) = v 5 v 9 0. (Wykłady z matematyki dyskretnej) Grafy (3): drzewa / 107

37 Algorytm PREORDER(v), przykład v 4 v 5 v 6 v 7 v 8 v 9 0 Wpisz na listę. L( ) =. Weź pierwsze (lewe) dziecko v 2 rodzica. Wpisz v 2 na listę L(v 2 ) = v 2. Weź pierwsze (lewe) dziecko v 4 rodzica v 2. Wpisz v 4 na listę L(v 4 ) = v 4. Wierzchołek v 4 nie ma dzieci. L(v 2 ) = v 2 v 4. Weź kolejne dziecko v 5 rodzica v 2. Wpisz v 5 na listę L(v 5 ) = v 5. Weź pierwsze (lewe) dziecko v 9 rodzica v 5. Wpisz v 9 na listę L(v 9 ) = v 9. Wierzchołek v 9 nie ma dzieci. L(v 5 ) = v 5 v 9. Weź kolejne dziecko 0 rodzica v 5. Wpisz 0 na listę L(0 ) = 0. Wierzchołek 0 nie ma dzieci. L(v 5 ) = v 5 v 9 0. (Wykłady z matematyki dyskretnej) Grafy (3): drzewa / 107

38 Algorytm PREORDER(v), przykład v 4 v 5 v 6 v 7 v 8 v 9 0 Wpisz na listę. L( ) =. Weź pierwsze (lewe) dziecko v 2 rodzica. Wpisz v 2 na listę L(v 2 ) = v 2. Weź pierwsze (lewe) dziecko v 4 rodzica v 2. Wpisz v 4 na listę L(v 4 ) = v 4. Wierzchołek v 4 nie ma dzieci. L(v 2 ) = v 2 v 4. Weź kolejne dziecko v 5 rodzica v 2. Wpisz v 5 na listę L(v 5 ) = v 5. Weź pierwsze (lewe) dziecko v 9 rodzica v 5. Wpisz v 9 na listę L(v 9 ) = v 9. Wierzchołek v 9 nie ma dzieci. L(v 5 ) = v 5 v 9. Weź kolejne dziecko 0 rodzica v 5. Wpisz 0 na listę L(0 ) = 0. Wierzchołek 0 nie ma dzieci. L(v 5 ) = v 5 v 9 0. (Wykłady z matematyki dyskretnej) Grafy (3): drzewa / 107

39 Algorytm PREORDER(v), przykład v 4 v 5 v 6 v 7 v 8 v 9 0 L(v 2 ) = v 2 v 4, L(v 5 ) = v 5 v 9 0. Wszyscy potomkowie v 2 zostali uwzględnieni. L(v 2 ) = v 2 v 4 v 5 v 9 0. L( ) = v 2 v 4 v 5 v 9 0. aaa aa aa aa aa(wykłady z matematyki dyskretnej) Grafy (3): drzewa / 107

40 v 9 0 L( ) = v 2 v 4 v 5 v 9 0. Weź kolejne dziecko v 3 rodzica. Wpisz v 3 na listę L(v 3 ) = v 3. Weź pierwsze (lewe) dziecko v 6 rodzica v 3. Wpisz v 6 na listę L(v 6 ) = v 6. Wierzchołek v 6 nie ma dzieci. L(v 3 ) = v 3 v 6. Weź kolejne dziecko v 7 rodzica v 7. Wpisz v 7 na listę L(v 7 ) = v 7. Wierzchołek v 7 nie ma dzieci. L(v 3 ) = v 3 v 6 v 7. Weź kolejne dziecko v 8 rodzica v 8. Wpisz v 8 na listę L(v 8 ) = v 8. Wierzchołek v 8 nie ma dzieci. L(v 3 ) = v 3 v 6 v 7 v 8. Wszystkie dzieci wierzchołka v 3 zostały uwzględnione. L( ) = v 2 v 4 v 5 v 9 0 v 3 v 6 v 7 v 8. Wszystkie dzieci wierzchołka zostały (Wykłady z matematyki dyskretnej) Grafy (3): drzewa / 107 Algorytm PREORDER(v), przykład v 4 v 5 v 6 v 7 v 8

41 v 9 0 L( ) = v 2 v 4 v 5 v 9 0. Weź kolejne dziecko v 3 rodzica. Wpisz v 3 na listę L(v 3 ) = v 3. Weź pierwsze (lewe) dziecko v 6 rodzica v 3. Wpisz v 6 na listę L(v 6 ) = v 6. Wierzchołek v 6 nie ma dzieci. L(v 3 ) = v 3 v 6. Weź kolejne dziecko v 7 rodzica v 7. Wpisz v 7 na listę L(v 7 ) = v 7. Wierzchołek v 7 nie ma dzieci. L(v 3 ) = v 3 v 6 v 7. Weź kolejne dziecko v 8 rodzica v 8. Wpisz v 8 na listę L(v 8 ) = v 8. Wierzchołek v 8 nie ma dzieci. L(v 3 ) = v 3 v 6 v 7 v 8. Wszystkie dzieci wierzchołka v 3 zostały uwzględnione. L( ) = v 2 v 4 v 5 v 9 0 v 3 v 6 v 7 v 8. Wszystkie dzieci wierzchołka zostały (Wykłady z matematyki dyskretnej) Grafy (3): drzewa / 107 Algorytm PREORDER(v), przykład v 4 v 5 v 6 v 7 v 8

42 v 9 0 L( ) = v 2 v 4 v 5 v 9 0. Weź kolejne dziecko v 3 rodzica. Wpisz v 3 na listę L(v 3 ) = v 3. Weź pierwsze (lewe) dziecko v 6 rodzica v 3. Wpisz v 6 na listę L(v 6 ) = v 6. Wierzchołek v 6 nie ma dzieci. L(v 3 ) = v 3 v 6. Weź kolejne dziecko v 7 rodzica v 3. Wpisz v 7 na listę L(v 7 ) = v 7. Wierzchołek v 7 nie ma dzieci. L(v 3 ) = v 3 v 6 v 7. Weź kolejne dziecko v 8 rodzica v 3. Wpisz v 8 na listę L(v 8 ) = v 8. Wierzchołek v 8 nie ma dzieci. L(v 3 ) = v 3 v 6 v 7 v 8. Wszystkie dzieci wierzchołka v 3 zostały uwzględnione. L( ) = v 2 v 4 v 5 v 9 0 v 3 v 6 v 7 v 8. Wszystkie dzieci wierzchołka zostały (Wykłady z matematyki dyskretnej) Grafy (3): drzewa / 107 Algorytm PREORDER(v), przykład v 4 v 5 v 6 v 7 v 8

43 v 9 0 L( ) = v 2 v 4 v 5 v 9 0. Weź kolejne dziecko v 3 rodzica. Wpisz v 3 na listę L(v 3 ) = v 3. Weź pierwsze (lewe) dziecko v 6 rodzica v 3. Wpisz v 6 na listę L(v 6 ) = v 6. Wierzchołek v 6 nie ma dzieci. L(v 3 ) = v 3 v 6. Weź kolejne dziecko v 7 rodzica v 3. Wpisz v 7 na listę L(v 7 ) = v 7. Wierzchołek v 7 nie ma dzieci. L(v 3 ) = v 3 v 6 v 7. Weź kolejne dziecko v 8 rodzica v 3. Wpisz v 8 na listę L(v 8 ) = v 8. Wierzchołek v 8 nie ma dzieci. L(v 3 ) = v 3 v 6 v 7 v 8. Wszystkie dzieci wierzchołka v 3 zostały uwzględnione. L( ) = v 2 v 4 v 5 v 9 0 v 3 v 6 v 7 v 8. Wszystkie dzieci wierzchołka zostały (Wykłady z matematyki dyskretnej) Grafy (3): drzewa / 107 Algorytm PREORDER(v), przykład v 4 v 5 v 6 v 7 v 8

44 Algorytm PREORDER(v), przykład v 4 v 5 v 6 v 7 v 8 v 9 0 L( ) = v 2 v 4 v 5 v 9 0. L(v 3 ) = v 3. Wierzchołek v 8 nie ma dzieci. L(v 3 ) = v 3 v 6 v 7 v 8. Wszystkie dzieci wierzchołka v 3 zostały uwzględnione. Dopisz L(v 3 ) na końcu listy L( ) L( ) = v 2 v 4 v 5 v 9 0 v 3 v 6 v 7 v 8. Wszystkie dzieci wierzchołka zostały uwzględnione. Koniec. aa aa aa(wykłady z matematyki dyskretnej) Grafy (3): drzewa / 107

45 Algorytm POSTORDER(v) Na wejściu: uporządkowane skończone drzewo z wyróżnionym korzeniem v. Na wyjściu: lista L(v) wszystkich wierzchołków tego drzewa, na której każdy rodzic jest umieszczony po swoich dzieciach. Na początku lista L(v) jest pusta, będziemy to zapisywać L(v) = λ dla każdego dziecka w wierzchołka v (w porządku od lewej strony do prawej) POSTORDER(w) (otrzymamy tu listę złożoną z w i jego potomków) dołącz L(w) na końcu dotychczas uzyskanej listy L(v) Dołącz v na końcu listy L(v). Obserwacja. Algorytm ten umieszcza wierzchołek na liście w momencie, gdy odwiedza go po raz ostatni. (Wykłady z matematyki dyskretnej) Grafy (3): drzewa / 107

46 Algorytm POSTORDER(v), przykład v 4 v 5 v 6 v 7 v 8 v 9 0 Weź. L( ) = λ. Weź pierwsze (lewe) dziecko v 2 rodzica. L(v 2 ) = λ. Weź pierwsze (lewe) dziecko v 4 rodzica v 2. L(v 4 ) = λ. Wierzchołek v 4 nie ma dzieci. Wpisz v 4 na listę. L(v 4 ) = v 4. L(v 2 ) = v 4. Weź kolejne dziecko v 5 rodzica v 2. L(v 5 ) = λ. Weź pierwsze (lewe) dziecko v 9 rodzica v 5. L(v 9 ) = λ. Wierzchołek v 9 nie ma dzieci. Wpisz v 9 na listę. L(v 9 ) = v 9. L(v 5 ) = v 9. Weź kolejne dziecko 0 rodzica v 5. L(0 ) = λ. (Wykłady z matematyki dyskretnej) Grafy (3): drzewa / 107

47 Algorytm POSTORDER(v), przykład v 4 v 5 v 6 v 7 v 8 v 9 0 Weź. L( ) = λ. Weź pierwsze (lewe) dziecko v 2 rodzica. L(v 2 ) = λ. Weź pierwsze (lewe) dziecko v 4 rodzica v 2. L(v 4 ) = λ. Wierzchołek v 4 nie ma dzieci. Wpisz v 4 na listę. L(v 4 ) = v 4. L(v 2 ) = v 4. Weź kolejne dziecko v 5 rodzica v 2. L(v 5 ) = λ. Weź pierwsze (lewe) dziecko v 9 rodzica v 5. L(v 9 ) = λ. Wierzchołek v 9 nie ma dzieci. Wpisz v 9 na listę. L(v 9 ) = v 9. L(v 5 ) = v 9. Weź kolejne dziecko 0 rodzica v 5. L(0 ) = λ. (Wykłady z matematyki dyskretnej) Grafy (3): drzewa / 107

48 Algorytm POSTORDER(v), przykład v 4 v 5 v 6 v 7 v 8 v 9 0 Weź. L( ) = λ. Weź pierwsze (lewe) dziecko v 2 rodzica. L(v 2 ) = λ. Weź pierwsze (lewe) dziecko v 4 rodzica v 2. L(v 4 ) = λ. Wierzchołek v 4 nie ma dzieci. Wpisz v 4 na listę. L(v 4 ) = v 4. L(v 2 ) = v 4. Weź kolejne dziecko v 5 rodzica v 2. L(v 5 ) = λ. Weź pierwsze (lewe) dziecko v 9 rodzica v 5. L(v 9 ) = λ. Wierzchołek v 9 nie ma dzieci. Wpisz v 9 na listę. L(v 9 ) = v 9. L(v 5 ) = v 9. Weź kolejne dziecko 0 rodzica v 5. L(0 ) = λ. (Wykłady z matematyki dyskretnej) Grafy (3): drzewa / 107

49 Algorytm POSTORDER(v), przykład v 4 v 5 v 6 v 7 v 8 v 9 0 Weź. L( ) = λ. Weź pierwsze (lewe) dziecko v 2 rodzica. L(v 2 ) = λ. Weź pierwsze (lewe) dziecko v 4 rodzica v 2. L(v 4 ) = λ. Wierzchołek v 4 nie ma dzieci. Wpisz v 4 na listę. L(v 4 ) = v 4. L(v 2 ) = v 4. Weź kolejne dziecko v 5 rodzica v 2. L(v 5 ) = λ. Weź pierwsze (lewe) dziecko v 9 rodzica v 5. L(v 9 ) = λ. Wierzchołek v 9 nie ma dzieci. Wpisz v 9 na listę. L(v 9 ) = v 9. L(v 5 ) = v 9. Weź kolejne dziecko 0 rodzica v 5. L(0 ) = λ. (Wykłady z matematyki dyskretnej) Grafy (3): drzewa / 107

50 Algorytm POSTORDER(v), przykład v 4 v 5 v 6 v 7 v 8 v 9 0 Weź. L( ) = λ. Weź pierwsze (lewe) dziecko v 2 rodzica. L(v 2 ) = λ. Weź pierwsze (lewe) dziecko v 4 rodzica v 2. L(v 4 ) = λ. Wierzchołek v 4 nie ma dzieci. Wpisz v 4 na listę. L(v 4 ) = v 4. L(v 2 ) = v 4. Weź kolejne dziecko v 5 rodzica v 2. L(v 5 ) = λ. Weź pierwsze (lewe) dziecko v 9 rodzica v 5. L(v 9 ) = λ. Wierzchołek v 9 nie ma dzieci. Wpisz v 9 na listę. L(v 9 ) = v 9. L(v 5 ) = v 9. Weź kolejne dziecko 0 rodzica v 5. L(0 ) = λ. (Wykłady z matematyki dyskretnej) Grafy (3): drzewa / 107

51 Algorytm POSTORDER(v), przykład v 4 v 5 v 6 v 7 v 8 v 9 0 Weź. L( ) = λ. Weź pierwsze (lewe) dziecko v 2 rodzica. L(v 2 ) = λ. Weź pierwsze (lewe) dziecko v 4 rodzica v 2. L(v 4 ) = λ. Wierzchołek v 4 nie ma dzieci. Wpisz v 4 na listę. L(v 4 ) = v 4. L(v 2 ) = v 4. Weź kolejne dziecko v 5 rodzica v 2. L(v 5 ) = λ. Weź pierwsze (lewe) dziecko v 9 rodzica v 5. L(v 9 ) = λ. Wierzchołek v 9 nie ma dzieci. Wpisz v 9 na listę. L(v 9 ) = v 9. L(v 5 ) = v 9. Weź kolejne dziecko 0 rodzica v 5. L(0 ) = λ. (Wykłady z matematyki dyskretnej) Grafy (3): drzewa / 107

52 Algorytm POSTORDER(v), przykład v 4 v 5 v 6 v 7 v 8 v 9 0 L(v 2 ) = v 4. L(v 5 ) = v 9. L(0 ) = λ. Wierzchołek 0 nie ma dzieci. Wpisz 0 na listę. L(0 ) = 0. L(v 5 ) = v 9 0. Wszystkie dzieci v 5 zostały odwiedzone. Wpisz v 5 na listę. L(v 5 ) = v 9 0 v 5. L(v 2 ) = v 4 v 9 0 v 5. Wszystkie dzieci v 2 zostały odwiedzone. Wpisz v 2 na listę. L(v 5 ) = v 4 v 9 0 v 5 v 2. L( ) = v 4 v 9 0 v 5 v 2. (Wykłady z matematyki dyskretnej) Grafy (3): drzewa / 107

53 Algorytm POSTORDER(v), przykład v 4 v 5 v 6 v 7 v 8 v 9 0 L(v 2 ) = v 4. L(v 5 ) = v 9. L(0 ) = λ. Wierzchołek 0 nie ma dzieci. Wpisz 0 na listę. L(0 ) = 0. L(v 5 ) = v 9 0. Wszystkie dzieci v 5 zostały odwiedzone. Wpisz v 5 na listę. L(v 5 ) = v 9 0 v 5. L(v 2 ) = v 4 v 9 0 v 5. Wszystkie dzieci v 2 zostały odwiedzone. Wpisz v 2 na listę. L(v 5 ) = v 4 v 9 0 v 5 v 2. L( ) = v 4 v 9 0 v 5 v 2. (Wykłady z matematyki dyskretnej) Grafy (3): drzewa / 107

54 Algorytm POSTORDER(v), przykład v 4 v 5 v 6 v 7 v 8 v 9 0 L(v 2 ) = v 4. L(v 5 ) = v 9. L(0 ) = λ. Wierzchołek 0 nie ma dzieci. Wpisz 0 na listę. L(0 ) = 0. L(v 5 ) = v 9 0. Wszystkie dzieci v 5 zostały odwiedzone. Wpisz v 5 na listę. L(v 5 ) = v 9 0 v 5. L(v 2 ) = v 4 v 9 0 v 5. Wszystkie dzieci v 2 zostały odwiedzone. Wpisz v 2 na listę. L(v 2 ) = v 4 v 9 0 v 5 v 2. L( ) = v 4 v 9 0 v 5 v 2. (Wykłady z matematyki dyskretnej) Grafy (3): drzewa / 107

55 Algorytm POSTORDER(v), przykład v 4 v 5 v 6 v 7 v 8 v 9 0 L(v 2 ) = v 4. L(v 5 ) = v 9. L(0 ) = λ. Wierzchołek 0 nie ma dzieci. Wpisz 0 na listę. L(0 ) = 0. L(v 5 ) = v 9 0. Wszystkie dzieci v 5 zostały odwiedzone. Wpisz v 5 na listę. L(v 5 ) = v 9 0 v 5. L(v 2 ) = v 4 v 9 0 v 5. Wszystkie dzieci v 2 zostały odwiedzone. Wpisz v 2 na listę. L( ) = v 4 v 9 0 v 5 v 2. (Wykłady z matematyki dyskretnej) Grafy (3): drzewa / 107

56 v 9 0 L( ) = v 4 v 9 0 v 5 v 2. Weź kolejne dziecko v 3 rodzica. L(v 3 ) = λ. Weź pierwsze (lewe) dziecko v 6 rodzica v 3. L(v 6 ) = λ. Wierzchołek v 6 nie ma dzieci. Wpisz v 6 na listę. L(v 6 ) = v 6. L(v 3 ) = v 6. Weź kolejne dziecko v 7 rodzica v 3. L(v 7 ) = λ. Wierzchołek v 7 nie ma dzieci. Wpisz v 7 na listę. L(v 7 ) = v 7. L(v 3 ) = v 6 v 7. Weź kolejne dziecko v 8 rodzica v 3. L(v 8 ) = λ. Wierzchołek v 8 nie ma dzieci. Wpisz v 8 na listę. L(v 8 ) = v 8. L(v 3 ) = v 6 v 7 v 8. Wszystkie dzieci v 3 zostały odwiedzone. Wpisz v 3 na listę. (Wykłady z matematyki dyskretnej) Grafy (3): drzewa / 107 Algorytm POSTORDER(v), przykład v 4 v 5 v 6 v 7 v 8

57 v 9 0 L( ) = v 4 v 9 0 v 5 v 2. Weź kolejne dziecko v 3 rodzica. L(v 3 ) = λ. Weź pierwsze (lewe) dziecko v 6 rodzica v 3. L(v 6 ) = λ. Wierzchołek v 6 nie ma dzieci. Wpisz v 6 na listę. L(v 6 ) = v 6. L(v 3 ) = v 6. Weź kolejne dziecko v 7 rodzica v 3. L(v 7 ) = λ. Wierzchołek v 7 nie ma dzieci. Wpisz v 7 na listę. L(v 7 ) = v 7. L(v 3 ) = v 6 v 7. Weź kolejne dziecko v 8 rodzica v 3. L(v 8 ) = λ. Wierzchołek v 8 nie ma dzieci. Wpisz v 8 na listę. L(v 8 ) = v 8. L(v 3 ) = v 6 v 7 v 8. Wszystkie dzieci v 3 zostały odwiedzone. Wpisz v 3 na listę. (Wykłady z matematyki dyskretnej) Grafy (3): drzewa / 107 Algorytm POSTORDER(v), przykład v 4 v 5 v 6 v 7 v 8

58 v 9 0 L( ) = v 4 v 9 0 v 5 v 2. Weź kolejne dziecko v 3 rodzica. L(v 3 ) = λ. Weź pierwsze (lewe) dziecko v 6 rodzica v 3. L(v 6 ) = λ. Wierzchołek v 6 nie ma dzieci. Wpisz v 6 na listę. L(v 6 ) = v 6. L(v 3 ) = v 6. Weź kolejne dziecko v 7 rodzica v 3. L(v 7 ) = λ. Wierzchołek v 7 nie ma dzieci. Wpisz v 7 na listę. L(v 7 ) = v 7. L(v 3 ) = v 6 v 7. Weź kolejne dziecko v 8 rodzica v 3. L(v 8 ) = λ. Wierzchołek v 8 nie ma dzieci. Wpisz v 8 na listę. L(v 8 ) = v 8. L(v 3 ) = v 6 v 7 v 8. Wszystkie dzieci v 3 zostały odwiedzone. Wpisz v 3 na listę. (Wykłady z matematyki dyskretnej) Grafy (3): drzewa / 107 Algorytm POSTORDER(v), przykład v 4 v 5 v 6 v 7 v 8

59 v 9 0 L( ) = v 4 v 9 0 v 5 v 2. Weź kolejne dziecko v 3 rodzica. L(v 3 ) = λ. Weź pierwsze (lewe) dziecko v 6 rodzica v 3. L(v 6 ) = λ. Wierzchołek v 6 nie ma dzieci. Wpisz v 6 na listę. L(v 6 ) = v 6. L(v 3 ) = v 6. Weź kolejne dziecko v 7 rodzica v 3. L(v 7 ) = λ. Wierzchołek v 7 nie ma dzieci. Wpisz v 7 na listę. L(v 7 ) = v 7. L(v 3 ) = v 6 v 7. Weź kolejne dziecko v 8 rodzica v 3. L(v 8 ) = λ. Wierzchołek v 8 nie ma dzieci. Wpisz v 8 na listę. L(v 8 ) = v 8. L(v 3 ) = v 6 v 7 v 8. Wszystkie dzieci v 3 zostały odwiedzone. Wpisz v 3 na listę. (Wykłady z matematyki dyskretnej) Grafy (3): drzewa / 107 Algorytm POSTORDER(v), przykład v 4 v 5 v 6 v 7 v 8

60 v 9 0 L( ) = v 4 v 9 0 v 5 v 2. Weź kolejne dziecko v 3 rodzica. L(v 3 ) = λ. Weź pierwsze (lewe) dziecko v 6 rodzica v 3. L(v 6 ) = λ. Wierzchołek v 6 nie ma dzieci. Wpisz v 6 na listę. L(v 6 ) = v 6. L(v 3 ) = v 6. Weź kolejne dziecko v 7 rodzica v 3. L(v 7 ) = λ. Wierzchołek v 7 nie ma dzieci. Wpisz v 7 na listę. L(v 7 ) = v 7. L(v 3 ) = v 6 v 7. Weź kolejne dziecko v 8 rodzica v 3. L(v 8 ) = λ. Wierzchołek v 8 nie ma dzieci. Wpisz v 8 na listę. L(v 8 ) = v 6 v 7 v 8. L(v 3 ) = v 6 v 7 v 8. Wszystkie dzieci v 3 zostały odwiedzone. Wpisz v 3 na listę. (Wykłady z matematyki dyskretnej) Grafy (3): drzewa / 107 Algorytm POSTORDER(v), przykład v 4 v 5 v 6 v 7 v 8

61 Algorytm POSTORDER(v), przykład v 4 v 5 v 6 v 7 v 8 v 9 0 L( ) = v 4 v 9 0 v 5 v 2. L(v 3 ) = v 6 v 7 v 8. Wszystkie dzieci v 3 zostały odwiedzone. Wpisz v 3 na listę. L(v 3 ) = v 6 v 7 v 8 v 3. L( ) = v 4 v 9 0 v 5 v 2 v 6 v 7 v 8 v 3. Wszystkie dzieci wierzchołka zostały odwiedzone. Wpisz na listę. L( ) = v 4 v 9 0 v 5 v 2 v 6 v 7 v 8 v 3 (Wykłady z matematyki dyskretnej) Grafy (3): drzewa / 107

62 Algorytm POSTORDER(v), przykład v 4 v 5 v 6 v 7 v 8 v 9 0 L( ) = v 4 v 9 0 v 5 v 2. L(v 3 ) = v 6 v 7 v 8. Wszystkie dzieci v 3 zostały odwiedzone. Wpisz v 3 na listę. L(v 3 ) = v 6 v 7 v 8 v 3. L( ) = v 4 v 9 0 v 5 v 2 v 6 v 7 v 8 v 3. Wszystkie dzieci wierzchołka zostały odwiedzone. Wpisz na listę. L( ) = v 4 v 9 0 v 5 v 2 v 6 v 7 v 8 v 3 (Wykłady z matematyki dyskretnej) Grafy (3): drzewa / 107

63 Algorytm INORDER(v) Na wejściu: uporządkowane skończone drzewo z wyróżnionym korzeniem v. Na wyjściu: lista L(v) wszystkich wierzchołków tego drzewa, na której każdy rodzic jest umieszczony między swoim lewym i prawym dzieckiem (o ile je ma). Na początku lista L(v) jest pusta, będziemy to zapisywać L(v) = λ. Jeżeli v ma lewe dziecko w, to INORDER(w) (otrzymamy tu listę złożoną z w i jego potomków) dołącz L(w) na końcu dotychczas uzyskanej listy L(v); dołącz v na końcu listy. Jeżeli v ma prawe dziecko u, to INORDER(u) (otrzymamy tu listę złożoną z u i jego potomków) dołącz L(u) na końcu dotychczas uzyskanej listy L(v). Obserwacja. Jeżeli wierzchołek nie ma dzieci, to algorytm na wyjściu podaje tylko ten wierzchołek. (Wykłady z matematyki dyskretnej) Grafy (3): drzewa / 107

64 Algorytm INORDER(v), przykład v 4 v 5 v 6 v 7 v 8 v 9 Weź. L( ) = λ. Weź pierwsze (lewe) dziecko v 2 rodzica. L(v 2 ) = λ. Weź pierwsze (lewe) dziecko v 4 rodzica v 2. L(v 4 ) = λ. Wierzchołek v 4 nie ma dzieci. Wpisz v 4 na listę. L(v 4 ) = v 4. Powróć do v 2, wpisz v 2 na listę L(v 2 ) = v 4 v 2. Weź kolejne dziecko v 5 rodzica v 2. L(v 5 ) = λ. Weź pierwsze (lewe) dziecko v 8 rodzica v 5. L(v 9 ) = λ. Wierzchołek v 8 nie ma dzieci. Wpisz v 8 na listę. L(v 8 ) = v 8. Powróć do v 5, wpisz v 5 na listę L(v 5 ) = v 8 v 5. (Wykłady z matematyki dyskretnej) Grafy (3): drzewa / 107

65 Algorytm INORDER(v), przykład v 4 v 5 v 6 v 7 v 8 v 9 Weź. L( ) = λ. Weź pierwsze (lewe) dziecko v 2 rodzica. L(v 2 ) = λ. Weź pierwsze (lewe) dziecko v 4 rodzica v 2. L(v 4 ) = λ. Wierzchołek v 4 nie ma dzieci. Wpisz v 4 na listę. L(v 4 ) = v 4. Powróć do v 2, wpisz v 2 na listę L(v 2 ) = v 4 v 2. Weź kolejne dziecko v 5 rodzica v 2. L(v 5 ) = λ. Weź pierwsze (lewe) dziecko v 8 rodzica v 5. L(v 9 ) = λ. Wierzchołek v 8 nie ma dzieci. Wpisz v 8 na listę. L(v 8 ) = v 8. Powróć do v 5, wpisz v 5 na listę L(v 5 ) = v 8 v 5. (Wykłady z matematyki dyskretnej) Grafy (3): drzewa / 107

66 Algorytm INORDER(v), przykład v 4 v 5 v 6 v 7 v 8 v 9 Weź. L( ) = λ. Weź pierwsze (lewe) dziecko v 2 rodzica. L(v 2 ) = λ. Weź pierwsze (lewe) dziecko v 4 rodzica v 2. L(v 4 ) = λ. Wierzchołek v 4 nie ma dzieci. Wpisz v 4 na listę. L(v 4 ) = v 4. Powróć do v 2, wpisz v 2 na listę L(v 2 ) = v 4 v 2. Weź kolejne dziecko v 5 rodzica v 2. L(v 5 ) = λ. Weź pierwsze (lewe) dziecko v 8 rodzica v 5. L(v 9 ) = λ. Wierzchołek v 8 nie ma dzieci. Wpisz v 8 na listę. L(v 8 ) = v 8. Powróć do v 5, wpisz v 5 na listę L(v 5 ) = v 8 v 5. (Wykłady z matematyki dyskretnej) Grafy (3): drzewa / 107

67 Algorytm INORDER(v), przykład v 4 v 5 v 6 v 7 v 8 v 9 Weź. L( ) = λ. Weź pierwsze (lewe) dziecko v 2 rodzica. L(v 2 ) = λ. Weź pierwsze (lewe) dziecko v 4 rodzica v 2. L(v 4 ) = λ. Wierzchołek v 4 nie ma dzieci. Wpisz v 4 na listę. L(v 4 ) = v 4. Wpisz v 2 na listę L(v 2 ) = v 4 v 2. Weź kolejne dziecko v 5 rodzica v 2. L(v 5 ) = λ. Weź pierwsze (lewe) dziecko v 8 rodzica v 5. L(v 9 ) = λ. Wierzchołek v 8 nie ma dzieci. Wpisz v 8 na listę. L(v 8 ) = v 8. Powróć do v 5, wpisz v 5 na listę L(v 5 ) = v 8 v 5. (Wykłady z matematyki dyskretnej) Grafy (3): drzewa / 107

68 Algorytm INORDER(v), przykład v 4 v 5 v 6 v 7 v 8 v 9 Weź. L( ) = λ. Weź pierwsze (lewe) dziecko v 2 rodzica. L(v 2 ) = λ. Weź pierwsze (lewe) dziecko v 4 rodzica v 2. L(v 4 ) = λ. Wierzchołek v 4 nie ma dzieci. Wpisz v 4 na listę. L(v 4 ) = v 4. Wpisz v 2 na listę L(v 2 ) = v 4 v 2. Weź kolejne dziecko v 5 rodzica v 2. L(v 5 ) = λ. Weź pierwsze (lewe) dziecko v 8 rodzica v 5. L(v 9 ) = λ. Wierzchołek v 8 nie ma dzieci. Wpisz v 8 na listę. L(v 8 ) = v 8. Powróć do v 5, wpisz v 5 na listę L(v 5 ) = v 8 v 5. (Wykłady z matematyki dyskretnej) Grafy (3): drzewa / 107

69 Algorytm INORDER(v), przykład v 4 v 5 v 6 v 7 v 8 v 9 Weź. L( ) = λ. Weź pierwsze (lewe) dziecko v 2 rodzica. L(v 2 ) = λ. Weź pierwsze (lewe) dziecko v 4 rodzica v 2. L(v 4 ) = λ. Wierzchołek v 4 nie ma dzieci. Wpisz v 4 na listę. L(v 4 ) = v 4. Wpisz v 2 na listę L(v 2 ) = v 4 v 2. Weź kolejne dziecko v 5 rodzica v 2. L(v 5 ) = λ. Weź pierwsze (lewe) dziecko v 8 rodzica v 5. L(v 9 ) = λ. Wierzchołek v 8 nie ma dzieci. Wpisz v 8 na listę. L(v 8 ) = v 8. Powróć do v 5, wpisz v 5 na listę L(v 5 ) = v 8 v 5. (Wykłady z matematyki dyskretnej) Grafy (3): drzewa / 107

70 Algorytm INORDER(v), przykład v 4 v 5 v 6 v 7 v 8 v 9 Weź. L( ) = λ. Weź pierwsze (lewe) dziecko v 2 rodzica. L(v 2 ) = λ. Weź pierwsze (lewe) dziecko v 4 rodzica v 2. L(v 4 ) = λ. Wierzchołek v 4 nie ma dzieci. Wpisz v 4 na listę. L(v 4 ) = v 4. Wpisz v 2 na listę L(v 2 ) = v 4 v 2. Weź kolejne dziecko v 5 rodzica v 2. L(v 5 ) = λ. Weź pierwsze (lewe) dziecko v 8 rodzica v 5. L(v 8 ) = λ. Wierzchołek v 8 nie ma dzieci. Wpisz v 8 na listę. L(v 8 ) = v 8. Powróć do v 5, wpisz v 5 na listę L(v 5 ) = v 8 v 5. (Wykłady z matematyki dyskretnej) Grafy (3): drzewa / 107

71 Algorytm INORDER(v), przykład v 4 v 5 v 6 v 7 v 8 v 9 Weź. L( ) = λ. Weź pierwsze (lewe) dziecko v 2 rodzica. L(v 2 ) = λ. Weź pierwsze (lewe) dziecko v 4 rodzica v 2. L(v 4 ) = λ. Wierzchołek v 4 nie ma dzieci. Wpisz v 4 na listę. L(v 4 ) = v 4. Wpisz v 2 na listę L(v 2 ) = v 4 v 2. Weź kolejne dziecko v 5 rodzica v 2. L(v 5 ) = λ. Weź pierwsze (lewe) dziecko v 8 rodzica v 5. L(v 8 ) = λ. Wierzchołek v 8 nie ma dzieci. Wpisz v 8 na listę. L(v 8 ) = v 8. Powróć do v 5, wpisz v 5 na listę L(v 5 ) = v 8 v 5. (Wykłady z matematyki dyskretnej) Grafy (3): drzewa / 107

72 Algorytm INORDER(v), przykład v 4 v 5 v 6 v 7 v 8 v 9 Weź. L( ) = λ. Weź pierwsze (lewe) dziecko v 2 rodzica. L(v 2 ) = λ. Weź pierwsze (lewe) dziecko v 4 rodzica v 2. L(v 4 ) = λ. Wierzchołek v 4 nie ma dzieci. Wpisz v 4 na listę. L(v 4 ) = v 4. Wpisz v 2 na listę L(v 2 ) = v 4 v 2. Weź kolejne dziecko v 5 rodzica v 2. L(v 5 ) = λ. Weź pierwsze (lewe) dziecko v 8 rodzica v 5. L(v 8 ) = λ. Wierzchołek v 8 nie ma dzieci. Wpisz v 8 na listę. L(v 8 ) = v 8. Wpisz v 5 na listę L(v 5 ) = v 8 v 5. (Wykłady z matematyki dyskretnej) Grafy (3): drzewa / 107

73 Algorytm INORDER(v), przykład v 4 v 5 v 6 v 7 v 8 v 9 L(v 2 ) = v 4 v 2, L(v 5 ) = v 8 v 5. Weź kolejne dziecko v 9 rodzica v 5. L(v 9 ) = λ. Wierzchołek v 9 nie ma dzieci. Wpisz v 9 na listę. L(v 9 ) = v 9. Dołącz L(v 9 ) nas końcu listy L(v 5 ). L(v 5 )v 8 v 5 v 9. Dołącz L(v 5 ) nas końcu listy L(v 2 ). L(v 2 ) = v 4 v 2 v 8 v 5 v 9 Powróć do, wpisz na listę L( ) = v 4 v 2 v 8 v 5 v 9 (Wykłady z matematyki dyskretnej) Grafy (3): drzewa / 107

74 Algorytm INORDER(v), przykład v 4 v 5 v 6 v 7 v 8 v 9 L(v 2 ) = v 4 v 2, L(v 5 ) = v 8 v 5. Weź kolejne dziecko v 9 rodzica v 5. L(v 9 ) = λ. Wierzchołek v 9 nie ma dzieci. Wpisz v 9 na listę. L(v 9 ) = v 9. Dołącz L(v 9 ) nas końcu listy L(v 5 ). L(v 5 ) = v 8 v 5 v 9. Dołącz L(v 5 ) nas końcu listy L(v 2 ). L(v 2 ) = v 4 v 2 v 8 v 5 v 9 Powróć do, wpisz na listę L( ) = v 4 v 2 v 8 v 5 v 9 (Wykłady z matematyki dyskretnej) Grafy (3): drzewa / 107

75 Algorytm INORDER(v), przykład v 4 v 5 v 6 v 7 v 8 v 9 L(v 2 ) = v 4 v 2, L(v 5 ) = v 8 v 5. Weź kolejne dziecko v 9 rodzica v 5. L(v 9 ) = λ. Wierzchołek v 9 nie ma dzieci. Wpisz v 9 na listę. L(v 9 ) = v 9. Dołącz L(v 9 ) nas końcu listy L(v 5 ). L(v 5 ) = v 8 v 5 v 9. Dołącz L(v 5 ) nas końcu listy L(v 2 ). L(v 2 ) = v 4 v 2 v 8 v 5 v 9 Wpisz na listę L( ) = v 4 v 2 v 8 v 5 v 9 (Wykłady z matematyki dyskretnej) Grafy (3): drzewa / 107

76 Algorytm INORDER(v), przykład v 4 v 5 v 6 v 7 v 8 v 9 L( ) = v 4 v 2 v 8 v 5 v 9 Weź kolejne dziecko v 3 rodzica. L(v 3 ) = λ. Weź lewe dziecko v 6 rodzica v 3. L(v 6 ) = λ. Wierzchołek v 6 nie ma dzieci. Wpisz v 6 na listę. L(v 6 ) = v 6. Powróć do v 3, wpisz v 3 na listę L(v 3 ) = v 6 v 3 Weź kolejne dziecko v 7 rodzica. L(v 3 ) = λ. (Wykłady z matematyki dyskretnej) Grafy (3): drzewa / 107

77 Algorytm INORDER(v), przykład v 4 v 5 v 6 v 7 v 8 v 9 L( ) = v 4 v 2 v 8 v 5 v 9 Weź kolejne dziecko v 3 rodzica. L(v 3 ) = λ. Weź lewe dziecko v 6 rodzica v 3. L(v 6 ) = λ. Wierzchołek v 6 nie ma dzieci. Wpisz v 6 na listę. L(v 6 ) = v 6. Powróć do v 3, wpisz v 3 na listę L(v 3 ) = v 6 v 3 Weź kolejne dziecko v 7 rodzica. L(v 3 ) = λ. (Wykłady z matematyki dyskretnej) Grafy (3): drzewa / 107

78 Algorytm INORDER(v), przykład v 4 v 5 v 6 v 7 v 8 v 9 L( ) = v 4 v 2 v 8 v 5 v 9 Weź kolejne dziecko v 3 rodzica. L(v 3 ) = λ. Weź lewe dziecko v 6 rodzica v 3. L(v 6 ) = λ. Wierzchołek v 6 nie ma dzieci. Wpisz v 6 na listę. L(v 6 ) = v 6. Powróć do v 3, wpisz v 3 na listę L(v 3 ) = v 6 v 3 Weź kolejne dziecko v 7 rodzica. L(v 3 ) = λ. (Wykłady z matematyki dyskretnej) Grafy (3): drzewa / 107

79 Algorytm INORDER(v), przykład v 4 v 5 v 6 v 7 v 8 v 9 L( ) = v 4 v 2 v 8 v 5 v 9 Weź kolejne dziecko v 3 rodzica. L(v 3 ) = λ. Weź lewe dziecko v 6 rodzica v 3. L(v 6 ) = λ. Wierzchołek v 6 nie ma dzieci. Wpisz v 6 na listę. L(v 6 ) = v 6. Wpisz v 3 na listę. L(v 3 ) = v 6 v 3. Weź kolejne dziecko v 7 rodzica. L(v 3 ) = λ. (Wykłady z matematyki dyskretnej) Grafy (3): drzewa / 107

80 Algorytm INORDER(v), przykład v 4 v 5 v 6 v 7 v 8 v 9 L( ) = v 4 v 2 v 8 v 5 v 9 Weź kolejne dziecko v 3 rodzica. L(v 3 ) = λ. Weź lewe dziecko v 6 rodzica v 3. L(v 6 ) = λ. Wierzchołek v 6 nie ma dzieci. Wpisz v 6 na listę. L(v 6 ) = v 6. Wpisz v 3 na listę. L(v 3 ) = v 6 v 3 Weź kolejne dziecko v 7 rodzica. L(v 7 ) = λ. (Wykłady z matematyki dyskretnej) Grafy (3): drzewa / 107

81 Algorytm INORDER(v), przykład v 4 v 5 v 6 v 7 v 8 v 9 L( ) = v 4 v 2 v 8 v 5 v 9, L(v 3 ) = v 6 v 3 Wierzchołek v 7 nie ma dzieci. Wpisz v 7 na listę. L(v 7 ) = v 7. Dołącz L(v 7 ) nas końcu listy L(v 3 ). L(v 3 ) = v 6 v 3 v 7. Dołącz L(v 3 ) nas końcu listy L( ). L( ) = v 4 v 2 v 8 v 5 v 9 v 6 v 3 v 7. (Wykłady z matematyki dyskretnej) Grafy (3): drzewa / 107

82 Etykietowanie drzewa Uwaga. Do uporządkowanego etykietowania (rodzice mają większe etykiety niż dzieci) wierzchołków drzewa binarnego z wyróżnionym korzeniem możemy zastosować algorytm podobny do POSTORDER. Zaczynamy i kończymy w korzeniu, stosujemy zasady: trzymaj się prawej oraz jak dojdziesz do liścia, to zawróć Różnica jest taka, że odwiedzając wierzchołek po raz ostatni zamiast wpisywać go na listę przypisujemy mu etykietę z kolejnym numerem. Oczywiście każdy liść odwiedzamy tylko raz (więc jest to odwiedzanie po raz ostatni). Przykład. Zaetykietujemy drzewo z poprzednich przykładów. (Wykłady z matematyki dyskretnej) Grafy (3): drzewa / 107

83 Etykietowanie drzewa, przykład v 4 v 5 v 6 v 7 v 8 v 9 0 (Wykłady z matematyki dyskretnej) Grafy (3): drzewa / 107

84 Etykietowanie drzewa, przykład v 4 v 5 v 6 v 7 v 8 v 9 0 (Wykłady z matematyki dyskretnej) Grafy (3): drzewa / 107

85 Etykietowanie drzewa, przykład v 4 v 5 v 6 v 7 v 8 v 9 0 (Wykłady z matematyki dyskretnej) Grafy (3): drzewa / 107

86 Etykietowanie drzewa, przykład 1 v 5 v 6 v 7 v 8 v 9 0 (Wykłady z matematyki dyskretnej) Grafy (3): drzewa / 107

87 Etykietowanie drzewa, przykład 1 v 5 v 6 v 7 v 8 v 9 0 (Wykłady z matematyki dyskretnej) Grafy (3): drzewa / 107

88 Etykietowanie drzewa, przykład 1 v 5 v 6 v 7 v 8 v 9 0 (Wykłady z matematyki dyskretnej) Grafy (3): drzewa / 107

89 Etykietowanie drzewa, przykład 1 v 5 v 6 v 7 v 8 v 9 0 (Wykłady z matematyki dyskretnej) Grafy (3): drzewa / 107

90 Etykietowanie drzewa, przykład 1 v 5 v 6 v 7 v (Wykłady z matematyki dyskretnej) Grafy (3): drzewa / 107

91 Etykietowanie drzewa, przykład 1 v 5 v 6 v 7 v (Wykłady z matematyki dyskretnej) Grafy (3): drzewa / 107

92 Etykietowanie drzewa, przykład 1 v 5 v 6 v 7 v (Wykłady z matematyki dyskretnej) Grafy (3): drzewa / 107

93 Etykietowanie drzewa, przykład 1 v 5 v 6 v 7 v (Wykłady z matematyki dyskretnej) Grafy (3): drzewa / 107

94 Etykietowanie drzewa, przykład 1 4 v 6 v 7 v (Wykłady z matematyki dyskretnej) Grafy (3): drzewa / 107

95 Etykietowanie drzewa, przykład 5 v v 6 v 7 v (Wykłady z matematyki dyskretnej) Grafy (3): drzewa / 107

96 Etykietowanie drzewa, przykład 5 v v 6 v 7 v (Wykłady z matematyki dyskretnej) Grafy (3): drzewa / 107

97 Etykietowanie drzewa, przykład 5 v v 6 v 7 v (Wykłady z matematyki dyskretnej) Grafy (3): drzewa / 107

98 Etykietowanie drzewa, przykład 5 v v 6 v 7 v (Wykłady z matematyki dyskretnej) Grafy (3): drzewa / 107

99 Etykietowanie drzewa, przykład 5 v v 7 v (Wykłady z matematyki dyskretnej) Grafy (3): drzewa / 107

100 Etykietowanie drzewa, przykład 5 v v 7 v (Wykłady z matematyki dyskretnej) Grafy (3): drzewa / 107

101 Etykietowanie drzewa, przykład 5 v v 7 v (Wykłady z matematyki dyskretnej) Grafy (3): drzewa / 107

102 Etykietowanie drzewa, przykład 5 v v (Wykłady z matematyki dyskretnej) Grafy (3): drzewa / 107

103 Etykietowanie drzewa, przykład 5 v v (Wykłady z matematyki dyskretnej) Grafy (3): drzewa / 107

104 Etykietowanie drzewa, przykład 5 v v (Wykłady z matematyki dyskretnej) Grafy (3): drzewa / 107

105 Etykietowanie drzewa, przykład 5 v (Wykłady z matematyki dyskretnej) Grafy (3): drzewa / 107

106 Etykietowanie drzewa, przykład (Wykłady z matematyki dyskretnej) Grafy (3): drzewa / 107

107 Etykietowanie drzewa, przykład (Wykłady z matematyki dyskretnej) Grafy (3): drzewa / 107

Matematyka dyskretna - 7.Drzewa

Matematyka dyskretna - 7.Drzewa Matematyka dyskretna - 7.Drzewa W tym rozdziale zajmiemy się drzewami: specjalnym przypadkiem grafów. Są one szczególnie przydatne do przechowywania informacji, umożliwiającego szybki dostęp do nich. Definicja

Bardziej szczegółowo

7a. Teoria drzew - kodowanie i dekodowanie

7a. Teoria drzew - kodowanie i dekodowanie 7a. Teoria drzew - kodowanie i dekodowanie Grzegorz Kosiorowski Uniwersytet Ekonomiczny w Krakowie zima 2016/2017 rzegorz Kosiorowski (Uniwersytet Ekonomiczny 7a. wteoria Krakowie) drzew - kodowanie i

Bardziej szczegółowo

7. Teoria drzew - spinanie i przeszukiwanie

7. Teoria drzew - spinanie i przeszukiwanie 7. Teoria drzew - spinanie i przeszukiwanie Grzegorz Kosiorowski Uniwersytet Ekonomiczny w Krakowie zima 2016/2017 rzegorz Kosiorowski (Uniwersytet Ekonomiczny 7. wteoria Krakowie) drzew - spinanie i przeszukiwanie

Bardziej szczegółowo

Wstęp do programowania. Drzewa. Piotr Chrząstowski-Wachtel

Wstęp do programowania. Drzewa. Piotr Chrząstowski-Wachtel Wstęp do programowania Drzewa Piotr Chrząstowski-Wachtel Drzewa Drzewa definiują matematycy, jako spójne nieskierowane grafy bez cykli. Równoważne określenia: Spójne grafy o n wierzchołkach i n-1 krawędziach

Bardziej szczegółowo

Drzewa. Jeżeli graf G jest lasem, który ma n wierzchołków i k składowych, to G ma n k krawędzi. Własności drzew

Drzewa. Jeżeli graf G jest lasem, który ma n wierzchołków i k składowych, to G ma n k krawędzi. Własności drzew Drzewa Las - graf, który nie zawiera cykli Drzewo - las spójny Jeżeli graf G jest lasem, który ma n wierzchołków i k składowych, to G ma n k krawędzi. Własności drzew Niech T graf o n wierzchołkach będący

Bardziej szczegółowo

Wykłady z Matematyki Dyskretnej

Wykłady z Matematyki Dyskretnej Wykłady z Matematyki Dyskretnej dla kierunku Informatyka dr Instytut Informatyki Politechnika Krakowska Wykłady na bazie materiałów: dra hab. Andrzeja Karafiata dr hab. Joanny Kołodziej, prof. PK Grafy

Bardziej szczegółowo

Algorytmiczna teoria grafów

Algorytmiczna teoria grafów Przedmiot fakultatywny 20h wykładu + 20h ćwiczeń 21 lutego 2014 Zasady zaliczenia 1 ćwiczenia (ocena): kolokwium, zadania programistyczne (implementacje algorytmów), praca na ćwiczeniach. 2 Wykład (egzamin)

Bardziej szczegółowo

Graf. Definicja marca / 1

Graf. Definicja marca / 1 Graf 25 marca 2018 Graf Definicja 1 Graf ogólny to para G = (V, E), gdzie V jest zbiorem wierzchołków (węzłów, punktów grafu), E jest rodziną krawędzi, które mogą być wielokrotne, dokładniej jednoelementowych

Bardziej szczegółowo

Wysokość drzewa Głębokość węzła

Wysokość drzewa Głębokość węzła Drzewa Drzewa Drzewo (ang. tree) zbiór węzłów powiązanych wskaźnikami, spójny i bez cykli. Drzewo posiada wyróżniony węzeł początkowy nazywany korzeniem (ang. root). Drzewo ukorzenione jest strukturą hierarchiczną.

Bardziej szczegółowo

Algorytmy i str ruktury danych. Metody algorytmiczne. Bartman Jacek

Algorytmy i str ruktury danych. Metody algorytmiczne. Bartman Jacek Algorytmy i str ruktury danych Metody algorytmiczne Bartman Jacek jbartman@univ.rzeszow.pl Metody algorytmiczne - wprowadzenia Znamy strukturę algorytmów Trudność tkwi natomiast w podaniu metod służących

Bardziej szczegółowo

Ogólne wiadomości o grafach

Ogólne wiadomości o grafach Ogólne wiadomości o grafach Algorytmy i struktury danych Wykład 5. Rok akademicki: / Pojęcie grafu Graf zbiór wierzchołków połączonych za pomocą krawędzi. Podstawowe rodzaje grafów: grafy nieskierowane,

Bardziej szczegółowo

MATEMATYKA DYSKRETNA - MATERIAŁY DO WYKŁADU GRAFY

MATEMATYKA DYSKRETNA - MATERIAŁY DO WYKŁADU GRAFY ERIAŁY DO WYKŁADU GRAFY Graf nieskierowany Grafem nieskierowanym nazywamy parę G = (V, E), gdzie V jest pewnym zbiorem skończonym (zwanym zbiorem wierzchołków grafu G), natomiast E jest zbiorem nieuporządkowanych

Bardziej szczegółowo

Struktury danych i złożoność obliczeniowa Wykład 5. Prof. dr hab. inż. Jan Magott

Struktury danych i złożoność obliczeniowa Wykład 5. Prof. dr hab. inż. Jan Magott Struktury danych i złożoność obliczeniowa Wykład. Prof. dr hab. inż. Jan Magott Algorytmy grafowe: podstawowe pojęcia, reprezentacja grafów, metody przeszukiwania, minimalne drzewa rozpinające, problemy

Bardziej szczegółowo

Teoria grafów podstawy. Materiały pomocnicze do wykładu. wykładowca: dr Magdalena Kacprzak

Teoria grafów podstawy. Materiały pomocnicze do wykładu. wykładowca: dr Magdalena Kacprzak Teoria grafów podstawy Materiały pomocnicze do wykładu wykładowca: dr Magdalena Kacprzak Grafy zorientowane i niezorientowane Przykład 1 Dwa pociągi i jeden most problem wzajemnego wykluczania się Dwa

Bardziej szczegółowo

TEORETYCZNE PODSTAWY INFORMATYKI

TEORETYCZNE PODSTAWY INFORMATYKI 1 TEORETYCZNE PODSTAWY INFORMATYKI WFAiS UJ, Informatyka Stosowana I rok studiów, I stopień Wykład 14c 2 Definicje indukcyjne Twierdzenia dowodzone przez indukcje Definicje indukcyjne Definicja drzewa

Bardziej szczegółowo

SPÓJNOŚĆ. ,...v k. }, E={v 1. v k. i v k. ,...,v k-1. }. Wierzchołki v 1. v 2. to końce ścieżki.

SPÓJNOŚĆ. ,...v k. }, E={v 1. v k. i v k. ,...,v k-1. }. Wierzchołki v 1. v 2. to końce ścieżki. SPÓJNOŚĆ Graf jest spójny, gdy dla każdego podziału V na dwa rozłączne podzbiory A i B istnieje krawędź z A do B. Definicja równoważna: Graf jest spójny, gdy każde dwa wierzchołki są połączone ścieżką

Bardziej szczegółowo

KURS MATEMATYKA DYSKRETNA

KURS MATEMATYKA DYSKRETNA KURS MATEMATYKA DYSKRETNA LEKCJA 28 Grafy hamiltonowskie ZADANIE DOMOWE www.akademia.etrapez.pl Strona 1 Część 1: TEST Zaznacz poprawną odpowiedź (tylko jedna jest prawdziwa). Pytanie 1 Drogę nazywamy

Bardziej szczegółowo

Teoretyczne podstawy informatyki

Teoretyczne podstawy informatyki Teoretyczne podstawy informatyki Wykład 6a Model danych oparty na drzewach 1 Model danych oparty na drzewach Istnieje wiele sytuacji w których przetwarzane informacje mają strukturę hierarchiczną lub zagnieżdżoną,

Bardziej szczegółowo

UNIWERSYTET GDAŃSKI MATERIAŁY DYDAKTYCZNE DO PRZEDMIOTU MATEMATYKA DYSKRETNA. pod redakcją: Hanna Furmańczyk Karol Horodecki Paweł Żyliński

UNIWERSYTET GDAŃSKI MATERIAŁY DYDAKTYCZNE DO PRZEDMIOTU MATEMATYKA DYSKRETNA. pod redakcją: Hanna Furmańczyk Karol Horodecki Paweł Żyliński UNIWERSYTET GDAŃSKI MATERIAŁY DYDAKTYCZNE DO PRZEDMIOTU MATEMATYKA DYSKRETNA pod redakcją: Hanna Furmańczyk Karol Horodecki Paweł Żyliński kierunek: Informatyka GDAŃSK 2019 Niniejsze materiały powstały

Bardziej szczegółowo

Podstawowe własności grafów. Wykład 3. Własności grafów

Podstawowe własności grafów. Wykład 3. Własności grafów Wykład 3. Własności grafów 1 / 87 Suma grafów Niech będą dane grafy proste G 1 = (V 1, E 1) oraz G 2 = (V 2, E 2). 2 / 87 Suma grafów Niech będą dane grafy proste G 1 = (V 1, E 1) oraz G 2 = (V 2, E 2).

Bardziej szczegółowo

Matematyka dyskretna

Matematyka dyskretna Matematyka dyskretna Wykład 13: Teoria Grafów Gniewomir Sarbicki Literatura R.J. Wilson Wprowadzenie do teorii grafów Definicja: Grafem (skończonym, nieskierowanym) G nazywamy parę zbiorów (V (G), E(G)),

Bardziej szczegółowo

Wykład X. Programowanie. dr inż. Janusz Słupik. Gliwice, Wydział Matematyki Stosowanej Politechniki Śląskiej. c Copyright 2016 Janusz Słupik

Wykład X. Programowanie. dr inż. Janusz Słupik. Gliwice, Wydział Matematyki Stosowanej Politechniki Śląskiej. c Copyright 2016 Janusz Słupik Wykład X Wydział Matematyki Stosowanej Politechniki Śląskiej Gliwice, 2016 c Copyright 2016 Janusz Słupik Drzewa binarne Drzewa binarne Drzewo binarne - to drzewo (graf spójny bez cykli) z korzeniem (wyróżnionym

Bardziej szczegółowo

Każdy węzeł w drzewie posiada 3 pola: klucz, adres prawego potomka i adres lewego potomka. Pola zawierające adresy mogą być puste.

Każdy węzeł w drzewie posiada 3 pola: klucz, adres prawego potomka i adres lewego potomka. Pola zawierające adresy mogą być puste. Drzewa binarne Każdy węzeł w drzewie posiada pola: klucz, adres prawego potomka i adres lewego potomka. Pola zawierające adresy mogą być puste. Uporządkowanie. Zakładamy, że klucze są różne. Klucze leżące

Bardziej szczegółowo

Matematyczne Podstawy Informatyki

Matematyczne Podstawy Informatyki Matematyczne Podstawy Informatyki dr inż. Andrzej Grosser Instytut Informatyki Teoretycznej i Stosowanej Politechnika Częstochowska Rok akademicki 2013/2014 Twierdzenie 2.1 Niech G będzie grafem prostym

Bardziej szczegółowo

Algorytmiczna teoria grafów

Algorytmiczna teoria grafów Podstawowe pojęcia i klasy grafów Wykład 1 Grafy nieskierowane Definicja Graf nieskierowany (graf) G = (V,E) jest to uporządkowana para składająca się z niepustego skończonego zbioru wierzchołków V oraz

Bardziej szczegółowo

Matematyczne Podstawy Informatyki

Matematyczne Podstawy Informatyki Matematyczne Podstawy Informatyki dr inż. Andrzej Grosser Instytut Informatyki Teoretycznej i Stosowanej Politechnika Częstochowska Rok akademicki 03/0 Przeszukiwanie w głąb i wszerz I Przeszukiwanie metodą

Bardziej szczegółowo

Indukowane Reguły Decyzyjne I. Wykład 3

Indukowane Reguły Decyzyjne I. Wykład 3 Indukowane Reguły Decyzyjne I Wykład 3 IRD Wykład 3 Plan Powtórka Grafy Drzewa klasyfikacyjne Testy wstęp Klasyfikacja obiektów z wykorzystaniem drzewa Reguły decyzyjne generowane przez drzewo 2 Powtórzenie

Bardziej szczegółowo

Grafem nazywamy strukturę G = (V, E): V zbiór węzłów lub wierzchołków, Grafy dzielimy na grafy skierowane i nieskierowane:

Grafem nazywamy strukturę G = (V, E): V zbiór węzłów lub wierzchołków, Grafy dzielimy na grafy skierowane i nieskierowane: Wykład 4 grafy Grafem nazywamy strukturę G = (V, E): V zbiór węzłów lub wierzchołków, E zbiór krawędzi, Grafy dzielimy na grafy skierowane i nieskierowane: Formalnie, w grafach skierowanych E jest podzbiorem

Bardziej szczegółowo

Podstawy programowania 2. Temat: Drzewa binarne. Przygotował: mgr inż. Tomasz Michno

Podstawy programowania 2. Temat: Drzewa binarne. Przygotował: mgr inż. Tomasz Michno Instrukcja laboratoryjna 5 Podstawy programowania 2 Temat: Drzewa binarne Przygotował: mgr inż. Tomasz Michno 1 Wstęp teoretyczny Drzewa są jedną z częściej wykorzystywanych struktur danych. Reprezentują

Bardziej szczegółowo

Zofia Kruczkiewicz, Algorytmu i struktury danych, Wykład 14, 1

Zofia Kruczkiewicz, Algorytmu i struktury danych, Wykład 14, 1 Wykład Algorytmy grafowe metoda zachłanna. Właściwości algorytmu zachłannego:. W przeciwieństwie do metody programowania dynamicznego nie występuje etap dzielenia na mniejsze realizacje z wykorzystaniem

Bardziej szczegółowo

WYŻSZA SZKOŁA INFORMATYKI STOSOWANEJ I ZARZĄDZANIA

WYŻSZA SZKOŁA INFORMATYKI STOSOWANEJ I ZARZĄDZANIA DROGI i CYKLE w grafach Dla grafu (nieskierowanego) G = ( V, E ) drogą z wierzchołka v 0 V do v t V nazywamy ciąg (naprzemienny) wierzchołków i krawędzi grafu: ( v 0, e, v, e,..., v t, e t, v t ), spełniający

Bardziej szczegółowo

Digraf. 13 maja 2017

Digraf. 13 maja 2017 Digraf 13 maja 2017 Graf skierowany, digraf, digraf prosty Definicja 1 Digraf prosty G to (V, E), gdzie V jest zbiorem wierzchołków, E jest rodziną zorientowanych krawędzi, między różnymi wierzchołkami,

Bardziej szczegółowo

Wykład 2. Drzewa zbalansowane AVL i 2-3-4

Wykład 2. Drzewa zbalansowane AVL i 2-3-4 Wykład Drzewa zbalansowane AVL i -3-4 Drzewa AVL Wprowadzenie Drzewa AVL Definicja drzewa AVL Operacje wstawiania i usuwania Złożoność obliczeniowa Drzewa -3-4 Definicja drzewa -3-4 Operacje wstawiania

Bardziej szczegółowo

WYŻSZA SZKOŁA INFORMATYKI STOSOWANEJ I ZARZĄDZANIA

WYŻSZA SZKOŁA INFORMATYKI STOSOWANEJ I ZARZĄDZANIA DRZEWA i LASY Drzewem nazywamy graf spójny nie zawierający cykli elementarnych. Lasem nazywamy graf nie zawierający cykli elementarnych. Przykłady drzew i lasów takie krawędzie są wykluczone drzewo las

Bardziej szczegółowo

Teoretyczne podstawy informatyki

Teoretyczne podstawy informatyki Teoretyczne podstawy informatyki Wykład 6b: Model danych oparty na drzewach http://hibiscus.if.uj.edu.pl/~erichter/dydaktyka2010/tpi-2010 Prof. dr hab. Elżbieta Richter-Wąs 1 Model danych oparty na drzewach

Bardziej szczegółowo

Matematyka dyskretna. Andrzej Łachwa, UJ, /15

Matematyka dyskretna. Andrzej Łachwa, UJ, /15 Matematyka dyskretna Andrzej Łachwa, UJ, 2013 andrzej.lachwa@uj.edu.pl 14/15 Grafy podstawowe definicje Graf to para G=(V, E), gdzie V to niepusty i skończony zbiór, którego elementy nazywamy wierzchołkami

Bardziej szczegółowo

Przykłady grafów. Graf prosty, to graf bez pętli i bez krawędzi wielokrotnych.

Przykłady grafów. Graf prosty, to graf bez pętli i bez krawędzi wielokrotnych. Grafy Graf Graf (ang. graph) to zbiór wierzchołków (ang. vertices), które mogą być połączone krawędziami (ang. edges) w taki sposób, że każda krawędź kończy się i zaczyna w którymś z wierzchołków. Graf

Bardziej szczegółowo

Podstawy Informatyki. Wykład 6. Struktury danych

Podstawy Informatyki. Wykład 6. Struktury danych Podstawy Informatyki Wykład 6 Struktury danych Stałe i zmienne Podstawowymi obiektami występującymi w programie są stałe i zmienne. Ich znaczenie jest takie samo jak w matematyce. Stałe i zmienne muszą

Bardziej szczegółowo

Zad. 1 Zad. 2 Zad. 3 Zad. 4 Zad. 5 SUMA

Zad. 1 Zad. 2 Zad. 3 Zad. 4 Zad. 5 SUMA Zad. 1 Zad. 2 Zad. 3 Zad. 4 Zad. 5 SUMA Zad. 1 (12p.)Niech n 3k > 0. Zbadać jaka jest najmniejsza możliwa liczba krawędzi w grafie, który ma dokładnie n wierzchołków oraz dokładnie k składowych, z których

Bardziej szczegółowo

a) 7 b) 19 c) 21 d) 34

a) 7 b) 19 c) 21 d) 34 Zadanie 1. Pytania testowe dotyczące podstawowych własności grafów. Zadanie 2. Przy każdym z zadań może się pojawić polecenie krótkiej charakterystyki algorytmu. Zadanie 3. W zadanym grafie sprawdzenie

Bardziej szczegółowo

Przypomnij sobie krótki wstęp do teorii grafów przedstawiony na początku semestru.

Przypomnij sobie krótki wstęp do teorii grafów przedstawiony na początku semestru. Spis treści 1 Drzewa 1.1 Drzewa binarne 1.1.1 Zadanie 1.1.2 Drzewo BST (Binary Search Tree) 1.1.2.1 Zadanie 1 1.1.2.2 Zadanie 2 1.1.2.3 Zadanie 3 1.1.2.4 Usuwanie węzła w drzewie BST 1.1.2.5 Zadanie 4

Bardziej szczegółowo

MATEMATYKA DYSKRETNA - KOLOKWIUM 2

MATEMATYKA DYSKRETNA - KOLOKWIUM 2 1 MATEMATYKA DYSKRETNA - KOLOKWIUM 2 GRUPA A RACHUNKI+KRÓTKIE WYJAŚNIENIA! NA TEJ KARTCE! KAŻDA DODATKOWA KARTKA TO MINUS 1 PUNKT! Imię i nazwisko...... Nr indeksu... 1. (3p.) Znajdź drzewo o kodzie Prufera

Bardziej szczegółowo

Matematyka dyskretna. Andrzej Łachwa, UJ, /14

Matematyka dyskretna. Andrzej Łachwa, UJ, /14 Matematyka dyskretna Andrzej Łachwa, UJ, 2012 andrzej.lachwa@uj.edu.pl 13/14 Grafy podstawowe definicje Graf to para G=(V, E), gdzie V to niepusty i skończony zbiór, którego elementy nazywamy wierzchołkami

Bardziej szczegółowo

Matematyka dyskretna. Andrzej Łachwa, UJ, /14

Matematyka dyskretna. Andrzej Łachwa, UJ, /14 Matematyka dyskretna Andrzej Łachwa, UJ, 2016 andrzej.lachwa@uj.edu.pl 13/14 Grafy podstawowe definicje Graf to para G=(V, E), gdzie V to niepusty i skończony zbiór, którego elementy nazywamy wierzchołkami

Bardziej szczegółowo

prowadzący dr ADRIAN HORZYK /~horzyk e-mail: horzyk@agh tel.: 012-617 Konsultacje paw. D-13/325

prowadzący dr ADRIAN HORZYK /~horzyk e-mail: horzyk@agh tel.: 012-617 Konsultacje paw. D-13/325 PODSTAWY INFORMATYKI WYKŁAD 8. prowadzący dr ADRIAN HORZYK http://home home.agh.edu.pl/~ /~horzyk e-mail: horzyk@agh agh.edu.pl tel.: 012-617 617-4319 Konsultacje paw. D-13/325 DRZEWA Drzewa to rodzaj

Bardziej szczegółowo

ZASADY PROGRAMOWANIA KOMPUTERÓW ZAP zima 2014/2015. Drzewa BST c.d., równoważenie drzew, kopce.

ZASADY PROGRAMOWANIA KOMPUTERÓW ZAP zima 2014/2015. Drzewa BST c.d., równoważenie drzew, kopce. POLITECHNIKA WARSZAWSKA Instytut Automatyki i Robotyki ZASADY PROGRAMOWANIA KOMPUTERÓW ZAP zima 204/205 Język programowania: Środowisko programistyczne: C/C++ Qt Wykład 2 : Drzewa BST c.d., równoważenie

Bardziej szczegółowo

Metody teorii gier. ALP520 - Wykład z Algorytmów Probabilistycznych p.2

Metody teorii gier. ALP520 - Wykład z Algorytmów Probabilistycznych p.2 Metody teorii gier ALP520 - Wykład z Algorytmów Probabilistycznych p.2 Metody teorii gier Cel: Wyprowadzenie oszacowania dolnego na oczekiwany czas działania dowolnego algorytmu losowego dla danego problemu.

Bardziej szczegółowo

Digraf o V wierzchołkach posiada V 2 krawędzi, zatem liczba różnych digrafów o V wierzchołkach wynosi 2 VxV

Digraf o V wierzchołkach posiada V 2 krawędzi, zatem liczba różnych digrafów o V wierzchołkach wynosi 2 VxV Graf skierowany (digraf) zbiór wierzchołków i zbiór krawędzi skierowanych łączących (co najwyżej jeden raz) uporządkowane pary wierzchołków. Mówimy wtedy, że krawędź łączy pierwszy wierzchołek z drugim

Bardziej szczegółowo

Podstawowe pojęcia dotyczące drzew Podstawowe pojęcia dotyczące grafów Przykłady drzew i grafów

Podstawowe pojęcia dotyczące drzew Podstawowe pojęcia dotyczące grafów Przykłady drzew i grafów Podstawowe pojęcia dotyczące drzew Podstawowe pojęcia dotyczące grafów Przykłady drzew i grafów Drzewa: Drzewo (ang. tree) jest strukturą danych zbudowaną z elementów, które nazywamy węzłami (ang. node).

Bardziej szczegółowo

WSTĘP DO INFORMATYKI. Drzewa i struktury drzewiaste

WSTĘP DO INFORMATYKI. Drzewa i struktury drzewiaste Akademia Górniczo-Hutnicza Wydział Elektrotechniki, Automatyki, Informatyki i Inżynierii Biomedycznej WSTĘP DO INFORMATYKI Adrian Horzyk Drzewa i struktury drzewiaste www.agh.edu.pl DEFINICJA DRZEWA Drzewo

Bardziej szczegółowo

Porządek symetryczny: right(x)

Porządek symetryczny: right(x) Porządek symetryczny: x lef t(x) right(x) Własność drzewa BST: W drzewach BST mamy porządek symetryczny. Dla każdego węzła x spełniony jest warunek: jeżeli węzeł y leży w lewym poddrzewie x, to key(y)

Bardziej szczegółowo

(4) x (y z) = (x y) (x z), x (y z) = (x y) (x z), (3) x (x y) = x, x (x y) = x, (2) x 0 = x, x 1 = x

(4) x (y z) = (x y) (x z), x (y z) = (x y) (x z), (3) x (x y) = x, x (x y) = x, (2) x 0 = x, x 1 = x 2. Wykład 2: algebry Boole a, kraty i drzewa. 2.1. Algebra Boole a. 1 Ważnym dla nas przykładem algebr są algebry Boole a, czyli algebry B = (B,,,, 0, 1) typu (2, 2, 1, 0, 0) spełniające własności: (1)

Bardziej szczegółowo

Drzewa podstawowe poj

Drzewa podstawowe poj Drzewa podstawowe poj ecia drzewo graf reprezentujacy regularna strukture wskaźnikowa, gdzie każdy element zawiera dwa lub wiecej wskaźników (ponumerowanych) do takich samych elementów; wez ly (albo wierzcho

Bardziej szczegółowo

Algorytmy i struktury danych. Drzewa: BST, kopce. Letnie Warsztaty Matematyczno-Informatyczne

Algorytmy i struktury danych. Drzewa: BST, kopce. Letnie Warsztaty Matematyczno-Informatyczne Algorytmy i struktury danych Drzewa: BST, kopce Letnie Warsztaty Matematyczno-Informatyczne Drzewa: BST, kopce Definicja drzewa Drzewo (ang. tree) to nieskierowany, acykliczny, spójny graf. Drzewo może

Bardziej szczegółowo

Kolorowanie wierzchołków Kolorowanie krawędzi Kolorowanie regionów i map. Wykład 8. Kolorowanie

Kolorowanie wierzchołków Kolorowanie krawędzi Kolorowanie regionów i map. Wykład 8. Kolorowanie Wykład 8. Kolorowanie 1 / 62 Kolorowanie wierzchołków - definicja Zbiory niezależne Niech G będzie grafem bez pętli. Definicja Mówimy, że G jest grafem k kolorowalnym, jeśli każdemu wierzchołkowi możemy

Bardziej szczegółowo

ALGORYTMY I STRUKTURY DANYCH

ALGORYTMY I STRUKTURY DANYCH LGORTM I STRUKTUR DNH Temat 6: Drzewa ST, VL Wykładowca: dr inż. bigniew TRPT e-mail: bigniew.tarapata@isi.wat.edu.pl http://www.tarapata.strefa.pl/p_algorytmy_i_struktury_danych/ Współautorami wykładu

Bardziej szczegółowo

1 Automaty niedeterministyczne

1 Automaty niedeterministyczne Szymon Toruńczyk 1 Automaty niedeterministyczne Automat niedeterministyczny A jest wyznaczony przez następujące składniki: Alfabet skończony A Zbiór stanów Q Zbiór stanów początkowych Q I Zbiór stanów

Bardziej szczegółowo

Matematyka dyskretna. Andrzej Łachwa, UJ, A/14

Matematyka dyskretna. Andrzej Łachwa, UJ, A/14 Matematyka dyskretna Andrzej Łachwa, UJ, 2019 andrzej.lachwa@uj.edu.pl 1A/14 Literatura obowiązkowa [1] K.A.Ross, Ch.R.B.Wright: Matematyka Dyskretna. Wydawnictwo Naukowe PWN, Warszawa 1996 [2] R.L.Graham,

Bardziej szczegółowo

Matematyka dyskretna. Andrzej Łachwa, UJ, B/14

Matematyka dyskretna. Andrzej Łachwa, UJ, B/14 Matematyka dyskretna Andrzej Łachwa, UJ, 2019 andrzej.lachwa@uj.edu.pl 1B/14 Drogi w grafach Marszruta (trasa) w grafie G z wierzchołka w do wierzchołka u to skończony ciąg krawędzi w postaci. W skrócie

Bardziej szczegółowo

Drzewa spinające MST dla grafów ważonych Maksymalne drzewo spinające Drzewo Steinera. Wykład 6. Drzewa cz. II

Drzewa spinające MST dla grafów ważonych Maksymalne drzewo spinające Drzewo Steinera. Wykład 6. Drzewa cz. II Wykład 6. Drzewa cz. II 1 / 65 drzewa spinające Drzewa spinające Zliczanie drzew spinających Drzewo T nazywamy drzewem rozpinającym (spinającym) (lub dendrytem) spójnego grafu G, jeżeli jest podgrafem

Bardziej szczegółowo

Programowanie obiektowe

Programowanie obiektowe Programowanie obiektowe Sieci powiązań Paweł Daniluk Wydział Fizyki Jesień 2014 P. Daniluk (Wydział Fizyki) PO w. IX Jesień 2014 1 / 24 Sieci powiązań Można (bardzo zgrubnie) wyróżnić dwa rodzaje powiązań

Bardziej szczegółowo

Teoria grafów dla małolatów. Andrzej Przemysław Urbański Instytut Informatyki Politechnika Poznańska

Teoria grafów dla małolatów. Andrzej Przemysław Urbański Instytut Informatyki Politechnika Poznańska Teoria grafów dla małolatów Andrzej Przemysław Urbański Instytut Informatyki Politechnika Poznańska Wstęp Matematyka to wiele różnych dyscyplin Bowiem świat jest bardzo skomplikowany wymaga rozważenia

Bardziej szczegółowo

Wykład 8. Drzewa AVL i 2-3-4

Wykład 8. Drzewa AVL i 2-3-4 Wykład 8 Drzewa AVL i 2-3-4 1 Drzewa AVL Ø Drzewa AVL Definicja drzewa AVL Operacje wstawiania i usuwania Złożoność obliczeniowa Ø Drzewa 2-3-4 Definicja drzewa 2-3-4 Operacje wstawiania i usuwania Złożoność

Bardziej szczegółowo

dr inż. Paweł Myszkowski Wykład nr 11 ( )

dr inż. Paweł Myszkowski Wykład nr 11 ( ) dr inż. Paweł Myszkowski Politechnika Białostocka Wydział Elektryczny Elektronika i Telekomunikacja, semestr II, studia stacjonarne I stopnia Rok akademicki 2015/2016 Wykład nr 11 (11.05.2016) Plan prezentacji:

Bardziej szczegółowo

Znajdowanie skojarzeń na maszynie równoległej

Znajdowanie skojarzeń na maszynie równoległej 11 grudnia 2008 Spis treści 1 Skojarzenia w różnych klasach grafów Drzewa Grafy gęste Grafy regularne dwudzielne Claw-free graphs 2 Drzewa Skojarzenia w drzewach Fakt Wybierajac krawędź do skojarzenia

Bardziej szczegółowo

Struktury danych i złożoność obliczeniowa Wykład 7. Prof. dr hab. inż. Jan Magott

Struktury danych i złożoność obliczeniowa Wykład 7. Prof. dr hab. inż. Jan Magott Struktury danych i złożoność obliczeniowa Wykład 7 Prof. dr hab. inż. Jan Magott Problemy NP-zupełne Transformacją wielomianową problemu π 2 do problemu π 1 (π 2 π 1 ) jest funkcja f: D π2 D π1 spełniająca

Bardziej szczegółowo

Algorytmy i Struktury Danych

Algorytmy i Struktury Danych Algorytmy i Struktury Danych Kopce Bożena Woźna-Szcześniak bwozna@gmail.com Jan Długosz University, Poland Wykład 11 Bożena Woźna-Szcześniak (AJD) Algorytmy i Struktury Danych Wykład 11 1 / 69 Plan wykładu

Bardziej szczegółowo

Matematyczne Podstawy Informatyki

Matematyczne Podstawy Informatyki Matematyczne Podstawy Informatyki dr inż. Andrzej Grosser Instytut Informatyki Teoretycznej i Stosowanej Politechnika Częstochowska Rok akademicki 2013/2014 Informacje podstawowe 1. Konsultacje: pokój

Bardziej szczegółowo

Nierówność Krafta-McMillana, Kodowanie Huffmana

Nierówność Krafta-McMillana, Kodowanie Huffmana Nierówność Krafta-McMillana, Kodowanie Huffmana Kodowanie i kompresja informacji - Wykład 2 1 marca 2010 Test na jednoznaczna dekodowalność Kod a jest prefiksem kodu b jeśli b jest postaci ax. x nazywamy

Bardziej szczegółowo

Sortowanie topologiczne skierowanych grafów acyklicznych

Sortowanie topologiczne skierowanych grafów acyklicznych Sortowanie topologiczne skierowanych grafów acyklicznych Metody boolowskie w informatyce Robert Sulkowski http://robert.brainusers.net 23 stycznia 2010 1 Definicja 1 (Cykl skierowany). Niech C = (V, A)

Bardziej szczegółowo

Algorytm obejścia drzewa poszukiwań i zadanie o hetmanach szachowych

Algorytm obejścia drzewa poszukiwań i zadanie o hetmanach szachowych Algorytm obejścia drzewa poszukiwań i zadanie o hetmanach szachowych 1 Algorytm obejścia drzewa poszukiwań i zadanie o hetmanach szachowych Alexander Denisjuk Prywatna Wyższa Szkoła Zawodowa w Giżycku

Bardziej szczegółowo

Wykład 8. Drzewo rozpinające (minimum spanning tree)

Wykład 8. Drzewo rozpinające (minimum spanning tree) Wykład 8 Drzewo rozpinające (minimum spanning tree) 1 Minimalne drzewo rozpinające - przegląd Definicja problemu Własności minimalnych drzew rozpinających Algorytm Kruskala Algorytm Prima Literatura Cormen,

Bardziej szczegółowo

Programowanie obiektowe

Programowanie obiektowe Programowanie obiektowe Sieci powiązań Paweł Daniluk Wydział Fizyki Jesień 2015 P. Daniluk (Wydział Fizyki) PO w. IX Jesień 2015 1 / 21 Sieci powiązań Można (bardzo zgrubnie) wyróżnić dwa rodzaje powiązań

Bardziej szczegółowo

6. Wstępne pojęcia teorii grafów

6. Wstępne pojęcia teorii grafów 6. Wstępne pojęcia teorii grafów Grzegorz Kosiorowski Uniwersytet Ekonomiczny w Krakowie zima 2016/2017 rzegorz Kosiorowski (Uniwersytet Ekonomiczny w Krakowie) 6. Wstępne pojęcia teorii grafów zima 2016/2017

Bardziej szczegółowo

Lista liniowa dwukierunkowa

Lista liniowa dwukierunkowa 53 Lista liniowa dwukierunkowa Jest to lista złożona z elementów, z których każdy posiada, oprócz wskaźnika na element następny, również wskaźnik na element poprzedni. Zdefiniujmy element listy dwukierunkowej

Bardziej szczegółowo

Dynamiczny przydział pamięci w języku C. Dynamiczne struktury danych. dr inż. Jarosław Forenc. Metoda 1 (wektor N M-elementowy)

Dynamiczny przydział pamięci w języku C. Dynamiczne struktury danych. dr inż. Jarosław Forenc. Metoda 1 (wektor N M-elementowy) Rok akademicki 2012/2013, Wykład nr 2 2/25 Plan wykładu nr 2 Informatyka 2 Politechnika Białostocka - Wydział Elektryczny Elektrotechnika, semestr III, studia niestacjonarne I stopnia Rok akademicki 2012/2013

Bardziej szczegółowo

Drzewo. Drzewo uporządkowane ma ponumerowanych (oznaczonych) następników. Drzewo uporządkowane składa się z węzłów, które zawierają następujące pola:

Drzewo. Drzewo uporządkowane ma ponumerowanych (oznaczonych) następników. Drzewo uporządkowane składa się z węzłów, które zawierają następujące pola: Drzewa Drzewa Drzewo (ang. tree) zbiór węzłów powiązanych wskaźnikami, spójny i bez cykli. Drzewo posiada wyróżniony węzeł początkowy nazywany korzeniem (ang. root). Drzewo ukorzenione jest strukturą hierarchiczną.

Bardziej szczegółowo

Suma dwóch grafów. Zespolenie dwóch grafów

Suma dwóch grafów. Zespolenie dwóch grafów Suma dwóch grafów G 1 = ((G 1 ), E(G 1 )) G 2 = ((G 2 ), E(G 2 )) (G 1 ) i (G 2 ) rozłączne Suma G 1 G 2 graf ze zbiorem wierzchołków (G 1 ) (G 2 ) i rodziną krawędzi E(G 1 ) E(G 2 ) G 1 G 2 G 1 G 2 Zespolenie

Bardziej szczegółowo

2012-01-16 PLAN WYKŁADU BAZY DANYCH INDEKSY - DEFINICJE. Indeksy jednopoziomowe Indeksy wielopoziomowe Indeksy z użyciem B-drzew i B + -drzew

2012-01-16 PLAN WYKŁADU BAZY DANYCH INDEKSY - DEFINICJE. Indeksy jednopoziomowe Indeksy wielopoziomowe Indeksy z użyciem B-drzew i B + -drzew 0-0-6 PLAN WYKŁADU Indeksy jednopoziomowe Indeksy wielopoziomowe Indeksy z użyciem B-drzew i B + -drzew BAZY DANYCH Wykład 9 dr inż. Agnieszka Bołtuć INDEKSY - DEFINICJE Indeksy to pomocnicze struktury

Bardziej szczegółowo

Ogólne wiadomości o drzewach

Ogólne wiadomości o drzewach Ogólne wiadomości o drzewach Algorytmy i struktury danych Wykład 4. Rok akademicki: 2010/2011 Drzewo jako struktura danych Drzewo kolekcja elementów pozostających w zależności hierarchicznej, posiadająca

Bardziej szczegółowo

Typy danych. 2. Dane liczbowe 2.1. Liczby całkowite ze znakiem i bez znaku: 32768, -165, ; 2.2. Liczby rzeczywiste stało i zmienno pozycyjne:

Typy danych. 2. Dane liczbowe 2.1. Liczby całkowite ze znakiem i bez znaku: 32768, -165, ; 2.2. Liczby rzeczywiste stało i zmienno pozycyjne: Strona 1 z 17 Typy danych 1. Dane tekstowe rozmaite słowa zapisane w różnych alfabetach: Rozwój metod badawczych pozwala na przesunięcie granicy poznawania otaczającego coraz dalej w głąb materii: 2. Dane

Bardziej szczegółowo

Egzaminy i inne zadania. Semestr II.

Egzaminy i inne zadania. Semestr II. Egzaminy i inne zadania. Semestr II. Poniższe zadania są wyborem zadań ze Wstępu do Informatyki z egzaminów jakie przeprowadziłem w ciągu ostatnich lat. Ponadto dołączyłem szereg zadań, które pojawiały

Bardziej szczegółowo

Kolorowanie wierzchołków grafu

Kolorowanie wierzchołków grafu Kolorowanie wierzchołków grafu Niech G będzie grafem prostym. Przez k-kolorowanie właściwe wierzchołków grafu G rozumiemy takie przyporządkowanie wierzchołkom grafu liczb naturalnych ze zbioru {1,...,

Bardziej szczegółowo

0-0000, 1-0001, 2-0010, 3-0011 itd... 9-1001.

0-0000, 1-0001, 2-0010, 3-0011 itd... 9-1001. KODOWANIE Jednym z problemów, z którymi spotykamy się w informatyce, jest problem właściwego wykorzystania pamięci. Konstruując algorytm staramy się zwykle nie tylko o zminimalizowanie kosztów czasowych

Bardziej szczegółowo

Matematyka Dyskretna. Andrzej Szepietowski. 25 czerwca 2002 roku

Matematyka Dyskretna. Andrzej Szepietowski. 25 czerwca 2002 roku Matematyka Dyskretna Andrzej Szepietowski 25 czerwca 2002 roku Rozdział 1 Struktury danych 1.1 Listy, stosy i kolejki Lista to uporz adkowany ci ag elementów. Przykładami list s a wektory lub tablice

Bardziej szczegółowo

Czy istnieje zamknięta droga spaceru przechodząca przez wszystkie mosty w Królewcu dokładnie jeden raz?

Czy istnieje zamknięta droga spaceru przechodząca przez wszystkie mosty w Królewcu dokładnie jeden raz? DROGI i CYKLE EULERA w grafach Czy istnieje zamknięta droga spaceru przechodząca przez wszystkie mosty w Królewcu dokładnie jeden raz? Czy można narysować podaną figurę nie odrywając ołówka od papieru

Bardziej szczegółowo

Zadania z ćwiczeń #18 (pon. 7 maja) Matematyka Dyskretna

Zadania z ćwiczeń #18 (pon. 7 maja) Matematyka Dyskretna Zadania z ćwiczeń #18 (pon. 7 maja) Matematyka Dyskretna Q1.: Mamy dany zbiór artykułów, z których każdy ma co najmniej k z n możliwych tagów. Chcemy bardzo z grubsza pokategoryzować artykuły w jak najmniejszą

Bardziej szczegółowo

. Podstawy Programowania 2. Drzewa bst - część pierwsza. Arkadiusz Chrobot. 22 maja 2016

. Podstawy Programowania 2. Drzewa bst - część pierwsza. Arkadiusz Chrobot. 22 maja 2016 .. Podstawy Programowania 2 Drzewa bst - część pierwsza Arkadiusz Chrobot Zakład Informatyki 22 maja 2016 1 / 55 Plan.1 Wstęp.2 Definicje.3 Implementacja Typ bazowy i wskaźnik na korzeń Dodawanie elementu

Bardziej szczegółowo

Drzewa poszukiwań binarnych

Drzewa poszukiwań binarnych 1 Drzewa poszukiwań binarnych Kacper Pawłowski Streszczenie W tej pracy przedstawię zagadnienia związane z drzewami poszukiwań binarnych. Przytoczę poszczególne operacje na tej strukturze danych oraz ich

Bardziej szczegółowo

Algorytmy grafowe. Wykład 2 Przeszukiwanie grafów. Tomasz Tyksiński CDV

Algorytmy grafowe. Wykład 2 Przeszukiwanie grafów. Tomasz Tyksiński CDV Algorytmy grafowe Wykład 2 Przeszukiwanie grafów Tomasz Tyksiński CDV Rozkład materiału 1. Podstawowe pojęcia teorii grafów, reprezentacje komputerowe grafów 2. Przeszukiwanie grafów 3. Spójność grafu,

Bardziej szczegółowo

Metody Kompilacji Wykład 3

Metody Kompilacji Wykład 3 Metody Kompilacji Wykład 3 odbywa się poprzez dołączenie zasad(reguł) lub fragmentów kodu do produkcji w gramatyce. Włodzimierz Bielecki WI ZUT 2 Na przykład, dla produkcji expr -> expr 1 + term możemy

Bardziej szczegółowo

Algebrą nazywamy strukturę A = (A, {F i : i I }), gdzie A jest zbiorem zwanym uniwersum algebry, zaś F i : A F i

Algebrą nazywamy strukturę A = (A, {F i : i I }), gdzie A jest zbiorem zwanym uniwersum algebry, zaś F i : A F i Algebrą nazywamy strukturę A = (A, {F i : i I }), gdzie A jest zbiorem zwanym uniwersum algebry, zaś F i : A F i A (symbol F i oznacza ilość argumentów funkcji F i ). W rozważanych przez nas algebrach

Bardziej szczegółowo

TEORETYCZNE PODSTAWY INFORMATYKI

TEORETYCZNE PODSTAWY INFORMATYKI 1 TEORETYCZNE PODSTAWY INFORMATYKI WFAiS UJ, Informatyka Stosowana I rok studiów, I stopień Wykład 7 część I 2 Modele danych: zbiory Podstawowe definicje Operacje na zbiorach Prawa algebraiczne Struktury

Bardziej szczegółowo

Drzewa binarne. Drzewo binarne to dowolny obiekt powstały zgodnie z regułami: jest drzewem binarnym Jeśli T 0. jest drzewem binarnym Np.

Drzewa binarne. Drzewo binarne to dowolny obiekt powstały zgodnie z regułami: jest drzewem binarnym Jeśli T 0. jest drzewem binarnym Np. Drzewa binarne Drzewo binarne to dowolny obiekt powstały zgodnie z regułami: jest drzewem binarnym Jeśli T 0 i T 1 są drzewami binarnymi to T 0 T 1 jest drzewem binarnym Np. ( ) ( ( )) Wielkość drzewa

Bardziej szczegółowo

Kolejka priorytetowa. Często rozważa się kolejki priorytetowe, w których poszukuje się elementu minimalnego zamiast maksymalnego.

Kolejka priorytetowa. Często rozważa się kolejki priorytetowe, w których poszukuje się elementu minimalnego zamiast maksymalnego. Kolejki Kolejka priorytetowa Kolejka priorytetowa (ang. priority queue) to struktura danych pozwalająca efektywnie realizować następujące operacje na zbiorze dynamicznym, którego elementy pochodzą z określonego

Bardziej szczegółowo

Kolorowanie wierzchołków

Kolorowanie wierzchołków Kolorowanie wierzchołków Mając dany graf, pokolorować jego wierzchołki w taki sposób, aby każde dwa wierzchołki sąsiednie miały inny kolor. Każda krawędź łączy wierzchołki różnych kolorów. Takie pokolorowanie

Bardziej szczegółowo

Struktury Danych i Złożoność Obliczeniowa

Struktury Danych i Złożoność Obliczeniowa Struktury Danych i Złożoność Obliczeniowa Zajęcia 3 Struktury drzewiaste drzewo binarne szczególny przypadek drzewa, które jest szczególnym przypadkiem grafu skierowanego, stopień każdego wierzchołka jest

Bardziej szczegółowo

Minimalne drzewa rozpinające

Minimalne drzewa rozpinające KNM UŚ 26-28 listopada 2010 Ostrzeżenie Wprowadzenie Motywacja Definicje Niektóre pojęcia pojawiające się podczas tego referatu są naszymi autorskimi tłumaczeniami z języka angielskiego. Nie udało nam

Bardziej szczegółowo