Rozdzial 08 - Stosy kolejki i drzewa
Pełen tekst
(2)
(3) 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 jednowymiarowe. W wektorach mamy dost¸ep do dowolnego elementu, poprzez podanie indeksu tego elementu. Przykład 1.1 W j¸ezyku Pascal przykładem typu tablicy jednowymiarowej jest array[1..N] of integer. Je˙zeli mamy zmienn¸a tego typu a:array[1..N] of integer, to tablica a zawiera N elementów a[1], a[2], ... ,a[N]. W programie mo˙zemy odwoływa´c si¸e do całej tablicy, na przykład w instrukcji przypisania a:=b, lub do pojedynczych elementów: a[i]:=a[i+1]. Mo˙zemy tak˙ze u˙zywa´c tablic dwu lub wi¸ecej wymiarowych. Przykładem tablicy dwuwymiarowej jest typ array[1..N,1..M] of real. Zmienna. c:array[1..N,1..M] of real zawiera elementów. Dla ka˙zdej pary liczb spełniaj¸acej warunki
(4) c[i,j] zawiera liczb¸e typu real.. , element. ,. Czasami wygodniej posługiwa´c si¸e listami bez u˙zywania indeksów. Przykładami list, których mo˙zna u˙zywa´c bez konieczno´sci odwoływania si¸e do indeksów poszczególnych elementów, s¸a kolejki i stosy. 3.
(5) 4. Rozdział 1. Struktury danych. Definicja 1.2 Kolejka jest list¸a z trzema operacjami: dodawania nowego elementu na koniec kolejki, zdejmowania pierwszego elementu z pocz¸atku kolejki, sprawdzania, czy kolejka jest pusta. Taki sposób dodawania i odejmowania elementów jest okre´slany angielskim skrótem FIFO (first in first out, czyli pierwszy wszedł — pierwszy wyjdzie). Przykłady kolejek spotykamy w sklepach, gdzie klienci czekaj¸acy na obsłu˙zenie tworz¸a kolejki. Definicja 1.3 Stos jest list¸a z trzema operacjami: dodawania elementu na wierzch stosu, zdejmowania elementu z wierzchu stosu, sprawdzania, czy stos jest pusty. Na stosie dodajemy i odejmujemy elementy z tego samego ko n´ ca, podobnie jak w stosie talerzy spi¸etrzonym na stole. Talerze dokładane s¸a na wierzch stosu i zdejmowane z wierzchu stosu. Taka organizacja obsługi listy okre´slana jest angielskim skrótem LIFO (last in first out, czyli ostatni wszedł – pierwszy wyjdzie). Niektórzy w ten sposób organizuj¸a prac¸e na biurku. Przychodz¸ace listy układaj¸a na stosie i jak maj¸a czas, to zdejmuj¸a jeden list i odpowiadaj¸a na niego. Przyjrzyjmy si¸e zastosowaniu kolejki lub stosu do szukania. Przypu´sc´ my, z˙ e szukamy przez telefon pewnej informacji (na przykład chcieliby´smy si¸e dowiedzie´c, kto z naszych znajomych ma pewn¸a ksi¸az˙ k¸e). Algorytm szukania ksi¸az˙ ki w´sród znajomych tworzymy STOS, który na pocz¸atku jest pusty, wkładamy na STOS numer telefonu swojego znajomego, powtarzamy dopóki na stosie s¸a jakie´s numery: zdejmujemy z wierzchu STOSU jeden numer telefonu, . dzwonimy pod ten numer, . je˙zeli osoba, do której si¸e dodzwonili´smy, posiada szukan¸a ksi¸az˙ k¸e, to koniec poszukiwa´n, . je˙zeli nie posiada ksi¸az˙ ki, to pytamy j¸a o numery telefonów jej znajomych, którzy mog¸a mie´c ksi¸az˙ k¸e (lub zna´c kogo´s kto j¸a ma); ka˙zdy nowy numer zostaje dopisany do STOSU. . W powy˙zszym algorytmie zamiast stosu mo˙ze by´c u˙zyta kolejka..
(6) 1.2. Drzewa binarne. 5. 1.2 Drzewa binarne Drzewo jest hierarchiczn¸a struktur¸a danych. Jeden element drzewa, zwany korzeniem, jest wyró˙zniony. Inne elementy drzewa s¸a jego potomstwem lub potomstwem jego potomstwa itd. Terminologia u˙zywana do opisu drzew jest mieszanin¸a terminów z teorii grafów, botaniki i stosunków rodzinnych. Elementy drzewa nazywa si¸e wierzchołkami lub w¸ezłami. Li´scie to wierzchołki nie maj¸ace potomstwa. Drzewa cz¸esto przedstawia si¸e w formie grafu, gdzie ka˙zdy wierzchołek jest poł¸aczony kraw¸edzi¸a ze swoim ojcem i ze swoimi dzie´cmi (swoim potomstwem). Dla ka˙zdego elementu w drzewie istnieje dokładnie jedna s´cie˙zka prowadz¸aca od korzenia do tego wierzchołka. Drzewa binarne to takie drzewa, w których ka˙zdy wierzchołek ma co najwy˙zej dwóch synów. Do oznaczania wierzchołków w drzewie binarnym wygodnie jest u˙zywa c´ ci¸agów oznacza zbiór wszystkich skon´ czonych ci¸agów zer i jedyzer i jedynek. Niech nek. Zbiór ten zawiera ci¸ag pusty (długo´sci 0), oznaczany przez . Wierzchołki drzewa oznaczamy w nast¸epuj¸acy sposób:. . korze´n drzewa oznaczamy przez — pusty ci¸ag,. je˙ zeli jaki´s wierzchołek jest oznaczony przez , to jego synowie oznaczeni s¸a przez i .. Rysunek 1.1: Przykład drzewa binarnego . . . . . . Przy takim oznaczeniu wierzchołków drzewa binarnego nazwa wierzchołka mówi nam, jaka s´cie˙z ka prowadzi od korzenia do . Na przykład, aby doj´sc´ od korzenia do wierzchołka nalezy: pój´sc´ w prawo do , potem znowu w prawo do , a na kon´ cu w lewo do ..
(7) 6. Rozdział 1. Struktury danych. Je˙zeli mamy drzewo binarne , to z ka˙zdym wierzchołkiem mo˙zemy skojarzy´c poddrzewo zło˙zone z wierzchołka i wszystkich jego potomków. Na przykład w drzewie przedstawionym na rysunku 1.1 wierzchołek wyznacza poddrzewo przedstawione na rysunku 1.2.. Rysunek 1.2: Poddrzewo . . . Mówimy te˙z, z˙ e drzewo składa si¸e z korzenia (wierzchołka ), z lewego poddrzewa i z prawego poddrzewa . Wysoko´sci¸a drzewa nazywamy długo´sc´ (liczb˛e kraw˛edzi) najdłu˙zszej s´cie˙zki w drzewie prowadz¸acej od korzenia do li´scia. Na przykład drzewo z rysunku 1.1 jest wysoko´sci 3.. 1.3 Drzewa wyra˙zen´ arytmetycznych Przykładem zastosowania drzew binarnych s¸a drzewa wyra˙ze n´ arytmetycznych. Najpierw przykład. Na rysunku 1.3 przedstawiono drzewo wyra˙zenia
(8) . W drzewie tym ka˙zdy wierzchołek ma etykiet¸e. Li´scie etykietowane s¸a stałymi albo zmiennymi. Wierzchołki nie b¸ed¸ace li´sc´ mi etykietowane s¸a operacjami arytmetyczymi. Ka˙zdemu wierzchołkowi w drzewie mo˙zemy przypisa´c wyra˙zenie arytmetyczne według nast¸epuj¸acej zasady: dla li´sci wyra˙zeniami s¸a etykiety tych li´sci (stałe lub zmienne), je˙zeli wierzchołek wyra˙zenia ma etykiet¸e , a jego synom przypisano , to wierzchołkowi przypisujemy wyra˙zenie . . !i.. . . Przykład 1.4 W drzewie z rysunku1.3 wierzchołkowi z etykieta˛ odpowiada wyra˙zenie
(9) , wierzchołkowi z etykieta˛ wyra˙zenie " , a korzeniowi wyra˙zenie. #
(10). $%" !'&. Wyra˙zenie to zawiera wi¸ecej nawiasów, ni˙z to si¸e zwykle stosuje. Normalnie to samo wyra˙zenie przedstawiamy bez nawiasów w postaci
(11) () ..
(12) 1.3. Drzewa wyra˙ze´n arytmetycznych. Rysunek 1.3: Drzewo wyra˙zenia
(13) . 7. ). .
(14). . . . Opuszczenie nawiasów mo˙ze prowadzi´c do niejednoznaczno´sci lub mo˙ze zmieni´c sens wyra˙zenia. Na przykład wyra˙zenie.
(15) % . . po opuszczeniu nawiasów stanie si¸e identyczne z wyra˙zeniem
(16) " $" i zmieni sens. Drzewo, które odpowiada wyra˙zeniu
(17) % , przedstawiono na rysunku 1.4. Rysunek 1.4: Drzewo wyra˙zenia
(18). .
(19). (). . . . . . Drzewo wyra˙zenia arytmetycznego oddaje logiczn¸a struktur¸e i sposób obliczania tego wyra˙zenia..
(20) 8. Rozdział 1. Struktury danych. Istnieje sposób przedstawiania wyra˙zen´ arytmetycznych nie wymagaj¸acy nawiasów. Jest to tak zwana notacja polska lub Łukasiewicza. Jest ona te˙z nazywana notacj¸a postfixow¸a, poniewa˙z znak operacji stoi na kon´ cu wyra˙zenia, za argumentami, czyli wyra˙zenie w notacji postfixowej ma posta´c: pierwszy argument — drugi argument — operacja. Notacja, do jakiej jeste´smy przyzwyczajeni, nazywa si¸e infixowa, poniewa˙z operacja znajduje si¸e pomi¸edzy argumentami, czyli wyra˙zenie w notacji infixowej ma posta´c: pierwszy argument — operacja — drugi argument. Przykład 1.5 Wyra˙zenie w postaci postfixowej. .
(21) ! ma w postaci infixowej posta´c. .
(22) . ! . a wyra˙zenie.
(23) . jest postfixow¸a postaci¸a wyra˙zenia.
(24) (). &. W wyra˙zeniach w postaci postfixowej nie potrzeba nawiasów. Warto´sc´ wyra˙zenia mo˙zna w sposób jednoznaczny odtworzy´c z samego wyra˙zenia za pomoc¸a nast˛epujacego ˛ algorytmu.: Algorytm obliczania warto´sci wyra˙zenia w postaci postfixowej. Dla kolejnych elementów zapisu wyra˙zenia: je˙zeli element jest stał¸a lub zmienn¸a, to wkładamy jego warto´sc´ na stos, je˙zeli element jest znakiem operacji, to: zdejmujemy dwie warto´sci z wierzchu stosu, . wykonujemy operacj¸e na tych warto´sciach, . . obliczon¸a warto´sc´ wkładamy na wierzch stosu,. po przej´sciu całego wyra˙zenia jego warto´sc´ znajduje si¸e na stosie.. ". Przykład 1.6 Zademonstrujmy ten algorytm na przykładzie wyra˙zenia:. . . . . . Załó˙zmy, z˙e zmienne maj¸a nast¸epuj¸ace warto´sci: ,
(25) , , ,
(26) . Poni˙zsza tabela przedstawia zawarto´sc´ stosu po przeczytaniu kolejnych elementów wyraz˙enia..
(27) 1.4. Przeszukiwanie drzew binarnych czytany element a b c. . . d e. . . 9. stos 3, 3, 2, 3, 2, 1, 3, 3, 9, 9, 4, 9, 4, 2, 9, 2, 11.. 1.4 Przeszukiwanie drzew binarnych Zajmiemy si¸e teraz dwoma algorytmami przeszukiwania drzew (binarnych): przeszukiwanie w gł¸ab i wszerz. Ró˙zni¸a si¸e one rodzajem u˙zytych struktur danych. W algorytmie przeszukiwania w gł¸ab u˙zyjemy stosu, a w algorytmie przeszukiwania wszerz u˙zyjemy kolejki.. 1.4.1 Przeszukiwanie drzewa w głab ˛ Algorytm przeszukiwania drzewa w gł¸ab. Dane wej´sciowe: drzewo . odwiedzamy korze´n i wkładamy go na STOS; zaznaczamy jako wierzchołek odwiedzony, dopóki STOS nie jest pusty, powtarzamy: je˙zeli jest wierzchołkiem na wierzchu STOSU, to sprawdzamy, czy istnieje syn wierzchołka , który nie był jeszcze odwiedzony, najpierw sprawdzamy , a potem . . . je˙zeli takie si¸e znajdzie, to odwiedzamy , wkładamy go na wierzch STOSU i zaznaczamy jako wierzchołek odwiedzony, . . . je˙zeli takiego nie ma, to zdejmujemy chołka b¸ed¸acego na stosie pod spodem. . . ze STOSU i cofamy si¸e do wierz-. Przykład 1.7 Poni˙zsza tabela pokazuje jaki wierzchołek jest odwiedzany i jaka jest zawarto´sc´ stosu po ka˙zdej kolejnej iteracji p¸etli algorytmu, gdy przeszukiwane jest drzewo z rysunku 1.1..
(28) 10. Rozdział 1. Struktury danych Wierzchołek. STOS. . ,0. 0 00 0 01 0. ,0,00 ,0. . ,0,01 ,0 ,1. 1 10 1 11 110 11 111 11 1. ,1,10 ,1. ,1,11 ,1,11,110 ,1,11. . ,1,11,111 ,1,11 ,1 . W metodzie przeszukiwania w gł¸ab po ka˙zdym kroku algorytmu wierzchołki znajduj¸ace si¸e na stosie tworz¸a s´cie˙zk¸e od wierzchołka wej´sciowego do wierzchołka aktualnie odwiedzanego. Zauwa˙zmy, z˙ e nazwa ka˙zdego wierzchołka na stosie jest prefiksem (przedrostkiem) nazwy nast¸epnego wierzchołka. Dlatego wystarczy przechowywa´c ostatnie bity wierzchołków na stosie. Nie jest te˙z konieczne zaznaczanie, które wierzchołki były ju˙z odwiedzone, wystarczy zauwa˙zy´c, z˙ e: je˙zeli przyszli´smy do wierzchołka od jego ojca, to z˙ aden z synów nie był jeszcze odwiedzany, je˙zeli przyszli´smy do wierzchołka od lewego syna odwiedzony był tylko lewy syn, je˙zeli przyszli´smy do wierzchołka od prawego syna odwiedzeni ju˙z byli obaj synowie.. . (po zdj¸eciu. Algorytm przeszukiwania drzewa w gł¸ab (druga wersja). Dane wej´sciowe: drzewo . odwiedzamy korze´n i wkładamy go na STOS, dopóki STOS nie jest pusty, powtarzamy: Je˙zeli . jest aktualnie odwiedzanym wierzchołkiem i. Je˙zeli. . Je˙zeli ostatni¸a operacj¸a na stosi było wło˙zenie nowego elementu, to:. Je˙zeli. . . . , to przejd´z do ale. . i włó˙z 1 na stos,. i włó˙z 0 na stos,. , to przejd´z do. ze stosu), to. (po zdj¸eciu ze stosu), to. Oto prostsza wersja algorytmu przeszukiwania w gł¸ab:. . .
(29) Je˙zeli. 1.4. Przeszukiwanie drzew binarnych . . oraz. ojca wierzchołka .. Je˙zeli. . . 11. , to zdejmij ostatni element ze stosu i przejd´z do. i włó˙z 1 na stos,. Je˙zeli ostatni¸a operacj¸a na stosie było zdj¸ecie 0 to: . Je˙zeli chołka . . . , to przejd´z do. , to zdejmij ostatni element ze stosu i przejd´z do ojca wierz-. Je˙zeli ostatni¸a operacj¸a na stosie było zdj¸ecie 1 to: zdejmij ostatni element ze stosu i przejd´z do ojca wierzchołka .. Przykład 1.8 Poni˙zsza tabela pokazuje jaki wierzchołek jest odwiedzany i jaka jest zawarto´sc´ stosu po ka˙zdej kolejnej iteracji p¸etli drugiego algorytmu, gdy przeszukiwane jest drzewo z rysunku 1.1. Wierzchołek. STOS. . ,0. 0 00 0 01 0 . 1 10 1 11 110 11 111 11 1 . ,0,0 ,0 ,0,1 ,0 ,1 ,1,0 ,1. ,1,1 ,1,1,0 ,1,1 ,1,1,1 ,1,1 ,1 . Zauwa˙zmy, z˙e etykiety na stosie zł¸aczone razem tworz¸a nazw¸e aktualnie odwiedzanego wierzchołka.. 1.4.2 Przeszukiwanie drzewa wszerz Nast¸epny algorytm przeszukiwania drzew u˙zywa kolejki jako pomocniczej struktury danych. Algorytm przeszukiwania wszerz. Dane wej´sciowe: drzewo . odwiedzamy korze´n drzewa i wkładamy go do KOLEJKI..
(30) 12. Rozdział 1. Struktury danych dopóki KOLEJKA nie jest pusta, powtarzamy: bierzemy jeden wierzchołek z pocz¸atku KOLEJKI, . odwiedzamy wszystkiech synów wierzchołka kolejki.. i wkładamy je na koniec. . Poni˙zej przedstawiono odwiedzane wierzchołki oraz zawarto´sc´ kolejki po ka˙zdej kolejnej iteracji p¸etli algorytmu przeszukiwania wszerz drzewa przedstawionego na rysunku 1.1. wierzchołki. KOLEJKA. . . 0,1 00,01 10,11 110,111 -. 0,1 1,00,01 00,01,10,11 01,10,11 10,11 11 110,111 111 -. W metodzie przeszukiwania wszerz wierzchołki s¸a przeszukiwane w kolejno´sci od wierzchołków b¸ed¸acych najbli˙zej wierzchołka pocz¸atkowego do wierzchołków b¸ed¸acych dalej.. 1.4.3 Rekurencyjne algorytmy przeszukiwania drzew Istnieje prosty i ciekawy sposób uzyskiwania postaci postfixowej wyra˙zenia arytmetycznego z drzewa tego wyra˙zenia. Aby uzyska´c posta´c postfixow¸a wyra˙zenia, nale˙zy przeszuka´c drzewo tego wyra˙zenia w pewien okre´slony sposób, zwany przeszukiwaniem postorder. Przeszukiwanie postorder. Aby przeszuka´c (pod)drzewo maj¸ace swój korzen´ w wierzchołku : przeszukujemy jego lewe poddrzewo (z korzeniem w przeszukujemy jego prawe poddrzewo (z korzeniem w . . ),. ),. odwiedzamy wierzchołek (korzen´ drzewa). Algorytm ten mo˙zemy krótko przedstawi´c w schemacie: lewe poddrzewo — prawe poddrzewo — korzen´ . Przykład 1.9 Je˙zeli przeszukamy drzewo z rysunku 1.4 i wypiszemy po kolei etykiety odwiedzanych wierzchołków, to otrzymamy ci¸ag:.
(31) który jest postaci¸a postfixow¸a wyra˙zenia
(32). . () ..
(33) 1.5. Drzewa poszukiwa´n binarnych. 13. Istniej¸a jeszcze dwie inne pokrewne metody przeszukiwania drzew binarnych: inorder i preorder: Przeszukiwanie inorder. Aby przeszuka´c (pod)drzewo maj¸ace swój korzen´ w wierzchołku : . przeszukujemy jego lewe poddrzewo (z korzeniem w odwiedzamy wierzchołek (korzen´ drzewa),. ),. ).. przeszukujemy jego prawe poddrzewo (z korzeniem w . Przeszukiwanie preorder. Aby przeszuka´c (pod)drzewo maj¸ace swój korzen´ w wierzchołku : odwiedzamy wierzchołek (korzen´ drzewa), przeszukujemy jego lewe poddrzewo (z korzeniem w przeszukujemy jego prawe poddrzewo (z korzeniem w . . ),. ).. Przykład 1.10 Je˙zeli przeszukamy drzewo z rysunku 1.4 metod¸a inorder, to etykiety utworz¸a ci¸ag:. .
(34). . czyli wyra˙zenie w postaci infixowej, ale bez nawiasów. Przeszukanie tego samego drzewa metod¸a preorder da ci¸ag etykiet:.
(35) ) . Jest to tak zwana posta´c prefixowa wyra˙zenia. Znak operacji wyst¸epuje w niej przed argumentami. Podobne jak w postaci postfixowej, posta´c prefixowa da si¸e jednoznacznie rozkłada´c i nie wymaga nawiasów.. 1.5 Drzewa poszukiwan´ binarnych Drzewa s¸a podstawow¸a struktur¸a przy budowie du˙zych baz danych. Jed¸a z najprostszych takich struktur s¸a drzewa poszukiwan´ binarnych. Aby utworzy´c drzewo poszukiwa´n binarnych, zaczynamy od pustego drzewa, a nast¸epnie wstawiamy po kolei elementy, które maj¸a by´c przechowywane w drzewie. Wstawiane elementy powinny by´c z jakiego´s uporz¸adkowanego zbioru. Poni˙zej przedstawiamy algorytmu wstawiania elementów do drzewa. oznacza warto´sc´ przechowywan¸a w wierzchołku . Pami¸etajmy, z˙ e oznacza poddrzewo o korzeniu w wierzchołku . Algorytm wstawiania elementu do drzewa poszukiwan´ binarnych. Aby wstawi´c element do drzewa : je˙zeli drzewo jest puste, to . . . (wstaw do korzenia ),.
(36) 14. Rozdział 1. Struktury danych. . w przeciwnym razie porównaj z zawarto´sci¸a korzenia : je˙zeli . . je˙zeli . , to wstaw do poddrzewa , , to wstaw do poddrzewa .. Przykład 1.11 Przypu´sc´ my, z˙e mamy ci¸ag liczb naturalnych:.
(37)
(38) # .
(39)
(40)
(41) ! & . . . . . . . Utworzymy dla tego ci¸agu drzewo poszukiwa´n binarnych.. Rysunek 1.5: Drzewo poszukiwan´ po wstawieniu elementów: 128, 76, 106, 402.
(42) . . . .
(43). . Po wstawieniu pierwszych czterech elementów ci¸agu otrzymamy drzewo, które jest przedstawione na rysunku 1.5, a po wstawieniu całego ci¸agu otrzymamy drzewo, które jest przedstawione na rysunku 1.6. Je˙zeli teraz przeszukamy to drzewo metod¸a inorder, to otrzymamy ten sam ci¸ag, ale uporz¸adkowany:. .
(44) .
(45) !
(46) .
(47) &.
(48) !. . . . . . . . Je˙zeli mamy ju˙z drzewo poszukiwan´ binarnych , to dla ka˙zdego wierzchołka zachodzi dla ka˙zdego . , . dla ka˙zdego . , . . . . , .. Czyli wszystkie wierzchołki w lewym poddrzewie zawieraja˛ warto´sci mniejsze od warto´sci w , a wszystkie wierzchołki w prawym poddrzewie zawieraja˛ warto´sci mniejsze od warto´sci w . Aby stwierdzi´c, czy jaki´s element znajduje si¸e na tym drzewie. Post¸epujemy podobnie jak przy wstawianiu elementów. Zaczynamy od korzenia drzewa i szukamy elementu za pomoc¸a poni˙zszego algorytmu..
(49) 1.6. Zadania. 15. Rysunek 1.6: Drzewo dla ci¸agu: 128,76,106,402,100,46,354,1018,112,28, 396,35.
(50) . . .
(51) . . . . .
(52). . .
(53). . . Algorytm szukania elementu na drzewie . Aby stwierdzi´c, czy element znajduje si¸e na drzewie. :. je˙zeli jest puste, to koniec, elementu nie ma na drzewie,. . je˙zeli nie jest puste, to porównujemy z warto´sci¸a : je˙zeli ( . je˙zeli . . . je˙zeli . . . , to koniec, znale´zli´smy element na drzewie,. . . , , to szukamy w prawym poddrzewie . , to szukamy w lewym poddrzewie. W drzewie poszukiwa´n binarnych czas wyszukiwania lub wstawiania elementu jest , gdzie jest wysoko´sci¸a drzewa. W obu algorytmach tylko raz przechodzimy od. korzenia w dół do li´scia. Najlepiej by było, gdyby wysoko´sc´ drzewa była rz¸edu logarytm od liczby wierzchołków, ale nie w ka˙zdym drzewie poszukiwa n´ binarnych tak musi by´c.. 1.6 Zadania 1. Ile wierzchołków mo˙ze mie´c drzewo binarne wysoko´sci ? 2. Przeszukaj metod¸a „w gł¸ab” („wszerz”) drzewo z rysunku 1.7. 3. Narysuj drzewo dla wyra˙zenie
(54) postfixowej i prefixowej.. . . . . Przedstaw to wyra˙zenie w postaci.
(55) 16. Rozdział 1. Struktury danych. . . 4. Narysuj drzewo dla wyra˙zenie
(56) . Przedstaw to wyra˙zenie w postaci infixowej i prefixowej. Oblicz warto´sc´ tego wyra˙zenia. Przedstaw to wyra˙zenie w postaci infixowej i prefixowej. 5. Wypisz w postaci infixowej, prefixowej i postfixowej wyra˙zenie przedstawione na rysunku 7. Rysunek 1.7: Drzewo wyra˙zenia. . . . . . 6. Narysuj drzewo poszukiwan´ binarnych dla nast¸epuj¸acego ci¸agu liczb: 30, 43, 13, 8, 50, 40, 20, 19, 22. 7. Narysuj drzewo poszukiwan´ binarnych dla nast¸epuj¸acego ci¸agu słów: słowik, wróbel, kos, jaskółka, kogut, dzi¸ecioł, gil, kukułka, szczygieł, sowa, kruk, czubatka. [Fragment wiersza Ptasie radio Juliana Tuwima]. kraw¸edzi. li´sciach ma wierzchołków. 8. Udowodnij, z˙ e ka˙zde drzewo o werzchołkach ma 9. Udowodnij, z˙ e ka˙zde pełne drzewo binarne o wewn¸etrznych.. Wskazówka. Drzewo binarne nazywa si¸e pełne, je˙zeli ka˙zdy jego wierzchołek ma albo dwóch synów, albo nie ma synów wcale (jest li´sciem)..
(57)
Powiązane dokumenty
Ka˙zde zdanie jest prawdziwe lub
5 Poka», »e w przestrzeni Hausdora punkty s¡ domkni¦te, a ci¡gi zbie»ne maj¡ tylko jedn¡
Ka»de zadanie prosimy odda¢ na oddzielnej, podpisanej kartce.. Czas pracy:
W ka»dym podpunkcie w poni»szych pytaniach prosimy udzieli¢ odpowiedzi TAK lub NIE, zaznaczaj¡c j¡ na zaª¡czonym arkuszu odpowiedzi.. Ka»da kombinacja odpowiedzi TAK lub NIE w
Zbadamy teraz zbie˙zno´ s´ c szeregu w kra´ ncach otrzymanego przedzia
Tablice tego typu mog ˛ a by´c tworzone na podstawie bazy danych, proto- kołu wywiadu z ekspertem lub protokołu obserwacji danego procesu. pacjenci, jednostki czasu itp. W
Poka», »e indukowana permutacja punktów ma dokªadnie taki sam rozkªad jak w tasowaniu Rie Shue..
e)Dysk twardy – jest to element komputera mający na celu przechowywania różnych plików. Jego zaletą jest mniejsza cena i mniejsze zajmowanie przestrzeni komputera. Wadą jest