Grafy (3): drzewa. Wykłady z matematyki dyskretnej dla informatyków i teleinformatyków. UTP Bydgoszcz
|
|
- Martyna Kalinowska
- 6 lat temu
- Przeglądów:
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 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
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
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
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
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
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
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)
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
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ą.
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
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,
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
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
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
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ą
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
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
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ą,
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).
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
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)),
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
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
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
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
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ą
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
E: Rekonstrukcja ewolucji. Algorytmy filogenetyczne
E: Rekonstrukcja ewolucji. Algorytmy filogenetyczne Przypominajka: 152 drzewo filogenetyczne to drzewo, którego liśćmi są istniejące gatunki, a węzły wewnętrzne mają stopień większy niż jeden i reprezentują
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ą
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
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
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,
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
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
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
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
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
Poprawność semantyczna
Poprawność składniowa Poprawność semantyczna Poprawność algorytmu Wypisywanie zdań z języka poprawnych składniowo Poprawne wartościowanie zdań języka, np. w języku programowania skutki wystąpienia wyróżnionych
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ą
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
Lista 4. Kamil Matuszewski 22 marca 2016
Lista 4 Kamil Matuszewski 22 marca 2016 1 2 3 4 5 6 7 8 9 10 Zadanie 2 Ułóż algorytm który dla danego n-wierzchołkowego drzewa i liczby k pokoloruje jak najwięcej wierzchołków tak, by na każdej ścieżce
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
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
Wykład 3. Złożoność i realizowalność algorytmów Elementarne struktury danych: stosy, kolejki, listy
Wykład 3 Złożoność i realizowalność algorytmów Elementarne struktury danych: stosy, kolejki, listy Dynamiczne struktury danych Lista jest to liniowo uporządkowany zbiór elementów, z których dowolny element
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
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
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
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
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
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
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.
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
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).
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
Instrukcje dla zawodników
Instrukcje dla zawodników Nie otwieraj arkusza z zadaniami dopóki nie zostaniesz o to poproszony. Instrukcje poniżej zostaną ci odczytane i wyjaśnione. 1. Arkusz składa się z 3 zadań. 2. Każde zadanie
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)
(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)
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
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
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
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
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
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,
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
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
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ń
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ść
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
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:
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
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
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
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
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
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,
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)
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ń
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
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
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
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
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ą.
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
KURS MATEMATYKA DYSKRETNA
KURS MATEMATYKA DYSKRETNA LEKCJA 28 Grafy hamiltonowskie Odpowiedzi do zadania domowego www.akademia.etrapez.pl Strona 1 Część 1: TEST 1) b 2) a 3) b 4) d 5) c 6) d 7) b 8) b 9) d 10) a Zad. 1 ODPOWIEDZI
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
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
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
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
Algorytmy i Struktury Danych
Algorytmy i Struktury Danych Drzewa poszukiwań binarnych dr hab. Bożena Woźna-Szcześniak Jan Długosz University, Poland Wykład 8 Bożena Woźna-Szcześniak (AJD) Algorytmy i Struktury Danych Wykład 8 1 /
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,...,
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
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
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ą
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
. 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
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
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,
Algorytmy i Struktury Danych
Algorytmy i Struktury Danych Drzewa poszukiwań binarnych dr hab. Bożena Woźna-Szcześniak bwozna@gmail.com Jan Długosz University, Poland Wykład 12 Bożena Woźna-Szcześniak (AJD) Algorytmy i Struktury Danych
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
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