Binarno stablo (BinaryTree)

Σχετικά έγγραφα
Strukture podataka i algoritmi 1. kolokvij 16. studenog Zadatak 1

DISKRETNA MATEMATIKA - PREDAVANJE 7 - Jovanka Pantović

Operacije s matricama

2 tg x ctg x 1 = =, cos 2x Zbog četvrtog kvadranta rješenje je: 2 ctg x

ELEKTROTEHNIČKI ODJEL

Iskazna logika 3. Matematička logika u računarstvu. novembar 2012

18. listopada listopada / 13

a M a A. Može se pokazati da je supremum (ako postoji) jedinstven pa uvodimo oznaku sup A.

Osnovni primer. (Z, +,,, 0, 1) je komutativan prsten sa jedinicom: množenje je distributivno prema sabiranju

XI dvoqas veжbi dr Vladimir Balti. 4. Stabla

3.1 Granična vrednost funkcije u tački

Riješeni zadaci: Nizovi realnih brojeva

(P.I.) PRETPOSTAVKA INDUKCIJE - pretpostavimo da tvrdnja vrijedi za n = k.

Neka su A i B skupovi. Kažemo da je A podskup od B i pišemo A B ako je svaki element skupa A ujedno i element skupa B. Simbolima to zapisujemo:

7 Algebarske jednadžbe

UNIVERZITET U NIŠU ELEKTRONSKI FAKULTET SIGNALI I SISTEMI. Zbirka zadataka

INTEGRALNI RAČUN. Teorije, metodike i povijest infinitezimalnih računa. Lucija Mijić 17. veljače 2011.

M086 LA 1 M106 GRP. Tema: Baza vektorskog prostora. Koordinatni sustav. Norma. CSB nejednakost

Teorijske osnove informatike 1

Matematička analiza 1 dodatni zadaci

Numerička matematika 2. kolokvij (1. srpnja 2009.)

TRIGONOMETRIJA TROKUTA

Sume kvadrata. mn = (ax + by) 2 + (ay bx) 2.

radni nerecenzirani materijal za predavanja R(f) = {f(x) x D}

Kontrolni zadatak (Tačka, prava, ravan, diedar, poliedar, ortogonalna projekcija), grupa A

Zadaci sa prethodnih prijemnih ispita iz matematike na Beogradskom univerzitetu

Dijagonalizacija operatora

21. ŠKOLSKO/OPĆINSKO/GRADSKO NATJECANJE IZ GEOGRAFIJE GODINE 8. RAZRED TOČNI ODGOVORI

6 Polinomi Funkcija p : R R zadana formulom

Riješeni zadaci: Limes funkcije. Neprekidnost

PRAVA. Prava je u prostoru određena jednom svojom tačkom i vektorom paralelnim sa tom pravom ( vektor paralelnosti).

Linearna algebra 2 prvi kolokvij,

RIJEŠENI ZADACI I TEORIJA IZ

IZRAČUNAVANJE POKAZATELJA NAČINA RADA NAČINA RADA (ISKORIŠĆENOSTI KAPACITETA, STEPENA OTVORENOSTI RADNIH MESTA I NIVOA ORGANIZOVANOSTI)

Sortiranje prebrajanjem (Counting sort) i Radix Sort

numeričkih deskriptivnih mera.

Zavrxni ispit iz Matematiqke analize 1

IZVODI ZADACI ( IV deo) Rešenje: Najpre ćemo logaritmovati ovu jednakost sa ln ( to beše prirodni logaritam za osnovu e) a zatim ćemo

IZVODI ZADACI (I deo)

Neka je a 3 x 3 + a 2 x 2 + a 1 x + a 0 = 0 algebarska jednadžba trećeg stupnja. Rješavanje ove jednadžbe sastoji se od nekoliko koraka.

2. Ako je funkcija f(x) parna onda se Fourierov red funkcije f(x) reducira na Fourierov kosinusni red. f(x) cos

radni nerecenzirani materijal za predavanja

MATRICE I DETERMINANTE - formule i zadaci - (Matrice i determinante) 1 / 15

Cauchyjev teorem. Postoji više dokaza ovog teorema, a najjednostvniji je uz pomoć Greenove formule: dxdy. int C i Cauchy Riemannovih uvjeta.

KOMUTATIVNI I ASOCIJATIVNI GRUPOIDI. NEUTRALNI ELEMENT GRUPOIDA.

Funkcije dviju varjabli (zadaci za vježbu)

π π ELEKTROTEHNIČKI ODJEL i) f (x) = x 3 x 2 x + 1, a = 1, b = 1;

41. Jednačine koje se svode na kvadratne

( , 2. kolokvij)

M086 LA 1 M106 GRP Tema: Uvod. Operacije s vektorima.

TRIGONOMETRIJSKE FUNKCIJE I I.1.

POTPUNO RIJEŠENIH ZADATAKA PRIRUČNIK ZA SAMOSTALNO UČENJE

1.4 Tangenta i normala

POVRŠINA TANGENCIJALNO-TETIVNOG ČETVEROKUTA

PARCIJALNI IZVODI I DIFERENCIJALI. Sama definicija parcijalnog izvoda i diferencijala je malo teža, mi se njome ovde nećemo baviti a vi ćete je,

Ĉetverokut - DOMAĆA ZADAĆA. Nakon odgledanih videa trebali biste biti u stanju samostalno riješiti sljedeće zadatke.

Zadaci iz trigonometrije za seminar

( ) ( ) 2 UNIVERZITET U ZENICI POLITEHNIČKI FAKULTET. Zadaci za pripremu polaganja kvalifikacionog ispita iz Matematike. 1. Riješiti jednačine: 4

Uvod u teoriju brojeva

( , treći kolokvij) 3. Na dite lokalne ekstreme funkcije z = x 4 + y 4 2x 2 + 2y 2 3. (20 bodova)

SISTEMI NELINEARNIH JEDNAČINA

APROKSIMACIJA FUNKCIJA

Zadaci iz Osnova matematike

IspitivaƬe funkcija: 1. Oblast definisanosti funkcije (ili domen funkcije) D f

PID: Domen P je glavnoidealski [PID] akko svaki ideal u P je glavni (generisan jednim elementom; oblika ap := {ab b P }, za neko a P ).

NOMENKLATURA ORGANSKIH SPOJEVA. Imenovanje aromatskih ugljikovodika

6 Primjena trigonometrije u planimetriji

Veleučilište u Rijeci Stručni studij sigurnosti na radu Akad. god. 2011/2012. Matematika. Monotonost i ekstremi. Katica Jurasić. Rijeka, 2011.

1 Promjena baze vektora

Eliminacijski zadatak iz Matematike 1 za kemičare

Elementi spektralne teorije matrica

LINEARNA ALGEBRA 1, ZIMSKI SEMESTAR 2007/2008 PREDAVANJA: NENAD BAKIĆ, VJEŽBE: LUKA GRUBIŠIĆ I MAJA STARČEVIĆ

III VEŽBA: FURIJEOVI REDOVI

SEMINAR IZ KOLEGIJA ANALITIČKA KEMIJA I. Studij Primijenjena kemija

MATEMATIKA 2. Grupa 1 Rexea zadataka. Prvi pismeni kolokvijum, Dragan ori

Linearna algebra 2 prvi kolokvij,

( x) ( ) ( ) ( x) ( ) ( x) ( ) ( ) ( ) ( ) ( ) ( ) ( ) ( )

Funkcija gustoće neprekidne slučajne varijable ima dva bitna svojstva: 1. Nenegativnost: f(x) 0, x R, 2. Normiranost: f(x)dx = 1.

PRIMJER 3. MATLAB filtdemo

Matematičke metode u marketingumultidimenzionalno skaliranje. Lavoslav ČaklovićPMF-MO

MATEMATIKA Pokažite da za konjugiranje (a + bi = a bi) vrijedi. a) z=z b) z 1 z 2 = z 1 z 2 c) z 1 ± z 2 = z 1 ± z 2 d) z z= z 2

KONVEKSNI SKUPOVI. Definicije: potprostor, afin skup, konveksan skup, konveksan konus. 1/5. Back FullScr

Trigonometrija 2. Adicijske formule. Formule dvostrukog kuta Formule polovičnog kuta Pretvaranje sume(razlike u produkt i obrnuto

Računarska grafika. Rasterizacija linije

MATEMATIKA I 1.kolokvij zadaci za vježbu I dio

Kaskadna kompenzacija SAU

ZBIRKA POTPUNO RIJEŠENIH ZADATAKA

1. zadatak , 3 Dakle, sva kompleksna re{ewa date jedna~ine su x 1 = x 2 = 1 (dvostruko re{ewe), x 3 = 1 + i

VJEŽBE 3 BIPOLARNI TRANZISTORI. Slika 1. Postoje npn i pnp bipolarni tranziostori i njihovi simboli su dati na slici 2 i to npn lijevo i pnp desno.

- pravac n je zadan s točkom T(2,0) i koeficijentom smjera k=2. (30 bodova)

5. Karakteristične funkcije

9. GRANIČNA VRIJEDNOST I NEPREKIDNOST FUNKCIJE GRANIČNA VRIJEDNOST ILI LIMES FUNKCIJE

( ) ( ) Zadatak 001 (Ines, hotelijerska škola) Ako je tg x = 4, izračunaj

MATEMATIKA 1 8. domaća zadaća: RADIJVEKTORI. ALGEBARSKE OPERACIJE S RADIJVEKTORIMA. LINEARNA (NE)ZAVISNOST SKUPA RADIJVEKTORA.

Dvanaesti praktikum iz Analize 1

MJERA I INTEGRAL 2. kolokvij 30. lipnja (Knjige, bilježnice, dodatni papiri i kalkulatori nisu dozvoljeni!)

Determinante. a11 a. a 21 a 22. Definicija 1. (Determinanta prvog reda) Determinanta matrice A = [a] je broj a.

I.13. Koliki je napon između neke tačke A čiji je potencijal 5 V i referentne tačke u odnosu na koju se taj potencijal računa?

Struktura indeksa: B-stablo. ls/swd/btree/btree.html

Pismeni dio ispita iz Matematike Riješiti sistem jednačina i diskutovati rješenja u zavisnosti od parametra a:

Transcript:

Binarno stablo (BinaryTree) Binarno stablo T je konačan skup podataka istog tipa (čvorova) koji je ili prazan ili ima istaknuti čvor (korijen), a ostali čvorovi su podijeljeni u dva podskupa T L i T R od kojih svaki ima strukturu binarnog stabla. Stablo T L zovemo lijevo podstablo, stablo T R desno podstablo. Nazivi su slični onima kod uredenih stabala, a razlika je u tome što: (i) binarno stablo može biti prazno, a uredeno ne može, (ii) u binarnom stablu kod roditelja s jednim djetetom znamo je li dijete lijevo ili desno, dok u uredenom stablu za jedino dijete ne postoji takva informacija. a.t.p. BinaryTree node... labeltype... BinaryTree... BiMakeNull(&T)... BiEmpty(T)... BiCreate(l,TL,TR,&T)... BiLeftSubtree(T,&TL)... BiRightSubtree(T,&TR)... BiInsertLeftChild(l,i,&T)... BiInsertRightChild(l,i,&T)... BiDelete(i,&T)... BiRoot(T)... BiLeftChild(i,T)... BiRightChild(i,T)... BiParent(i,T)... BiLabel(i,T)... BiChangeLabel(l,i,&T)... Zadatak za DZ Napišite funkciju int Visina(BinaryTree T) koja vraća visinu binarnog stabla T: (a) koristeći se funkcijama BiLeftSubtree i BiRightSubtree, (b) ne koristeći se tim funkcijama. Zadatak za DZ Napišite funkciju int Brat(BinaryTree B) koja vraća broj onih čvorova koji: nisu listovi, njihov brat ima jedno dijete i imaju barem pet potomaka. Napišite funkciju int Brat2(BinaryTree B) koja vraća najveću oznaku medu svim takvim čvorovima. Zadatak 4. Dokažite sljedeće tvrdnje. (a) U binarnom stablu najveći broj čvorova na nivou i je 2 i. (b) Najveći ukupan broj čvorova u binarnom stablu visine k je 2 k+1 1.

(c) Neka je n 0 broj listova, a n 2 broj čvorova s dvoje djece. Dokažite da je n 0 = n 2 + 1. (d) Visina binarnog stabla s n čvorova je log 2 (n + 1) 1. (e) Visina binarnog stabla s n 0 listova je log 2 (n 0 ). Zadatak 5. Binarno stablo na slici opisuje gradu aritmetičkog izraza. Ispišite inorder, preorder i postorder obilazak tog stabla. Zadatak 6. Dokažite da je binarno stablo u kojem svi čvorovi čuvaju različite informacije jednoznačno odredeno obilascima preorder i inorder.

Pitanje za DZ Što ako su zadani: (a) preorder i postorder? (b) inorder i postorder? Zadatak 7. Reproducirajte binarno stablo ako je preorder = ABDEFHJKLCGI i inorder = EDFKJLHBAGIC. Potpuno binarno stablo je stablo čijim se čvorovima mogu dati imena 0, 1,..., N tako da za svaki i: (i) lijevo dijete čvora i ima ime 2i + 1 (osim ako je 2i + 1 > N, onda ne postoji to dijete) i (ii) desno dijete čvora i ima ime 2i + 2 (osim ako je 2i + 2 > N, onda ne postoji to dijete). Napomena. Vrlo jednostavna implementacija potpunog binarnog stabla: u polju dimenzije 2 n 1 možemo prikazati sva potpuna binarna stabla s visinom n. Ovaj prikaz možemo upotrijebiti i za obična binarna stabla, ali pritom puno mjesta može ostati neiskorišteno.

Zadatak 8. Razradite implementaciju binarnog stabla pomoću polja i u polju prikažite stablo sa slike. Stablo dopunimo lažnim čvorovima u koje napišemo oznaku i prikažemo ga kao u definiciji potpunog binarnog stabla. #define MAXLENGTH... typedef int node; typedef struct { labeltype labels[maxlength]; } BinaryTree; BiRoot(BinaryTree T) BiLeftChild(node i, BinaryTree T) BiRightChild(node i, BinaryTree T) BiParent(node i, BinaryTree T) BiLabel(node i, BinaryTree T) BiChangeLabel(labeltype l, node i, BinaryTree* T) BiInsertLeftChild(labeltype l, node i, BinaryTree* T) BiInsertRightChild(labeltype l, node i, BinaryTree* T) BiDelete(node i, BinaryTree* T) U svakoj operaciji još treba paziti da li nekog čvora nema (to je ako u njemu piše ili ako je njegov indeks veći od MAXLENGTH-1). Napomena. U poglavlju Općenite liste napravili smo funkciju Merge za spajanje dvije sortirane liste u jednu sortiranu listu. Spomenuli smo pritom problem odredivanja redoslijeda spajanja više sortiranih lista u jednu (redoslijed spajanja u merge sort algoritmu). Ovdje dajemo općeniti pristup tom problemu i rješenje. Redoslijed spajanja opisujemo binarnim stablom kojem su listovi polazne liste (zapravo njihove veličine), unutrašnji čvorovi su rezultati pojedinih spajanja i korijen predstavlja konačnu listu. Uočimo da u ovom stablu svaki čvor ima 0 ili 2 djeteta, zbog toga kažemo da je ono 2-stablo. Cilj je pronaći raspored (tj. 2-stablo) za koji će ukupno vrijeme biti minimalno.

Primjer. L 1 = 30, L 2 = 20, L 3 = 10 Uočimo da elementi pojedine liste sudjeluju u onoliko operacija Merge koliko je dug put od pripadnog lista do korijena stabla (tj. nivo lista). Ukupno vrijeme je stoga (tzv. ponderirana duljina) List L i ω i p i, gdje je ω i duljina liste L i i p i nivo lista L i. Dakle, za zadane ω 1,..., ω n trebamo naći stablo s n listova koji imaju oznake ω 1,..., ω n i koje ima minimalnu ponderiranu duljinu. Ovaj problem rješava Huffmanov algoritam, koji pripada klasi pohlepnih algoritama. HUFFMANOV ALGORITAM Ulaz: niz (lista) 2-stabala koja se sastoje samo od korijena u kojima je informacija ω i. Algoritam: sve dok lista ima > 1 element { odaberi iz liste dva stabla ciji korijeni imaju najmanje oznake (neka su to T1 i T2); izbaci T1 i T2 iz liste; stvori novo 2-stablo T u cijem korijenu pise zbroj oznaka korijena T1 i T2 i kome je lijevo podstablo T1 i desno podstablo T2; ubaci T u listu; } Rješenje je jedino stablo ostalo u listi. Zadatak 9. Nadite optimalan plan spajanja šest sortiranih lista duljina ω 1 = 2, ω 2 = 3, ω 3 = 5, ω 4 = 7, ω 5 = 9, ω 6 = 13. Zadatak 10. Dokažite da Huffmanov algoritam daje optimalan plan spajanja. Matematičkom indukcijom po broju lista koje treba spojiti u jednu.

. L A TEX-irala: Martina Stojić martina.stojic@gmail.com http://web.math.hr/~stojic 2014., listopad 2015.