Datastrukturer och algoritmer. Modell/tillämpningar för träd. Innehåll. Organisation och terminologi (2) Organisation och terminologi (1)

Relevanta dokument
Innehåll. Föreläsning 7. Modeller/tillämpningar för träd. Organisation och terminologi (1) Organisation och terminologi (2)

Innehåll. Träd. Träd. Traversering av träd. Binära träd. Datastrukturer och algoritmer Datastrukturer. Algoritmer.

Laboration 1a: En Trie-modul

Innehåll. Träd Terminologi

Föreläsning 11: Grafer, isomorfi, konnektivitet

Mitt barn skulle aldrig klottra!...eller?

4.1 Förskjutning Töjning

Headset för det Mobila kontoret

Algoritmer och datastrukturer, föreläsning 11

Föreläsning 7. Splay-träd. Prioritetsköer och heapar. Union/Find TDDC70/91: DALG. Innehåll. Innehåll. 1 Splay-träd

Robin Ekman och Axel Torshage. Hjälpmedel: Miniräknare

Svar: a) i) Typ: linjär DE med konstanta koefficienter i homogena delen dy men också separabel ( y = 10 4y

Tentamen TMV210 Inledande Diskret Matematik, D1/DI2

Hittills på kursen: E = hf. Relativitetsteori. vx 2. Lorentztransformationen. Relativistiskt dopplerskift (Rödförskjutning då källa avlägsnar sig)

Sammanfattning av ALA-B 2007

v v v v 5 v v v 4 (V,E ) (V,E)

INTRODUKTION. Akut? RING:

Räkneövning i Termodynamik och statistisk fysik

spänner upp ett underrum U till R 4. Bestäm alla par av tal (r, s) för vilka vektorn (r 3, 1 r, 3, 22 3r + s) tillhör U. Bestäm även en bas i U.

Vill veta kvaliteten hos våra vattenföringsdata?

F8: Logiska komponenter. Introduktion. Koder. Avkodare. Logiska komponenter

Malmö stad, Gatukontoret, maj 2003 Trafiksäkra skolan är framtaget av Upab i Malmö på uppdrag av och i samarbete med Malmö stad, Gatukontoret.

Trädstrukturer. Definitioner och terminologi. Informationsteknologi Tom Smedsaas 21 augusti 2016

247 Hemsjukvårdsinsats för boende i annan kommun

SPEL OM PENGAR FÖR - EN FRÅGA FÖR SKOLAN? VERKTYG, ÖVNINGAR OCH KUNSKAPSBANK FÖR ARBETE MED SPEL OM PENGAR I SKOLAN

V Ä G E N T I L L V A T T E N w w w. a v a n t i s y s t e m. s e

2. Bestäm en ON-bas i det linjära underrummet [1 + x, 1 x] till P 2 utrustat med skalärprodukten

Umeå Universitet Institutionen för fysik Daniel Eriksson/Leif Hassmyr. Bestämning av e/m e

Programinformation Teknikcollege Allhamra. Kinda Lärcentrum Kontakt. Teknisk utbildning, för framtida anställning

TRAFIKUTREDNING SILBODALSKOLAN. Tillhör detaljplan för Silbodalskolan Årjängs kommun. Upprättad av WSP Samhällsbyggnad,

SF1625 Envariabelanalys

Revisionsrapport Hylte kommun. Granskning av överförmyndarverksamheten

Om i en differentialekvation saknas y, dvs om DE har formen F ( x, . Ekvationen z ) 0. Med andra ord får vi en ekvation av ordning (n 1).

Träd Hierarkiska strukturer

Sektion LÅGFRIKTIONSPLAST Kedjeglidlister Glidlister Styrlister Band, Plattor, Rundstång Specialdetaljer

Ekosteg. En simulering om energi och klimat

Associativa lagen för multiplikation: (ab)c = a(bc). Kommutativa lagen för multiplikation: ab = ba.

LINJÄRA DIFFERENTIALEKVATIONER AV FÖRSTA ORDNINGEN

Operativsystemets uppgifter. Föreläsning 6 Operativsystem. Skydd, allmänt. Operativsystem, historik

HOMOGENA LINJÄRA DIFFERENTIALEKVATIONER MED KONSTANTA KOEFFICIENTER

1 (3k 2)(3k + 1) k=1. 3k 2 + B 3k(A + B)+A 2B =1. A = B 3A =1. 3 (3k 2) 1. k=1 = 1. k=1. = (3k + 1) (n 1) 2 1

SF1625 Envariabelanalys

SEPARABLA DIFFERENTIALEKVATIONER

Upplägg. Binära träd. Träd. Binära träd. Binära träd. Antal löv på ett träd. Binära träd (9) Binära sökträd (10.1)

DEMONSTRATION TRANSFORMATORN I. Magnetisering med elström Magnetfältet kring en spole Kraftverkan mellan spolar Bränna spik Jacobs stege

Uppgiftssamling 5B1493, lektionerna 1 6. Lektion 1

Sidor i boken

TNA003 Analys I Lösningsskisser, d.v.s. ej nödvändigtvis fullständiga lösningar, till vissa uppgifter kap P4.

Innehåll. Om gasfjädrar 1. Modeller (1 dan = 1 kgf = 2.25 lbf) Cylinder. Initialkraft dan. diameter mm < 250 < < F INIT < < F INIT

Innovation GAT med guldkant

Kontrollskrivning Introduktionskurs i Matematik HF0009 Datum: 25 aug Uppgift 1. (1p) Förenkla följande uttryck så långt som möjligt:

Anmärkning1. L Hospitals regel gäller även för ensidiga gränsvärden och dessutom om

TENTAMEN I MATEMATIK MED MATEMATISK STATISTIK HF1004 TEN

LINJÄR ALGEBRA II LEKTION 1

Föreläsning 4 Datastrukturer (DAT037)

Algoritmer och datastrukturer 2012, fo rela sning 8

temaunga.se EUROPEISKA UNIONEN Europeiska socialfonden

F5: Vektorer (Appendix B) och Vektormodulation (Kap PE 2)

Tillämpning - Ray Tracing och Bézier Ytor. TANA09 Föreläsning 3. Icke-Linjära Ekvationer. Ekvationslösning. Tillämpning.

Föreläsning 1. Metall: joner + gas av klassiska elektroner =1/ ! E = J U = RI = A L R E = J = I/A. 1 2 mv2 th = 3 2 kt. Likafördelningslagen:

Uppskatta lagerhållningssärkostnader

MEDIA PRO. Introduktion BYGG DIN EGEN PC

x = x = x = x=3 x=5 x=6 42 = 10x x + 10 = 15 x = = 20 x = 65 x + 36 = 46

Arbetsmarknad - marknadsformer. Förra gången. Svensk arbetsmarknad. Arbetsutbudets komponenter

Föreläsning 9. Digital signalbehandling. Kapitel 6. Sampling. LTH 2014 Nedelko Grbic (mtrl. från Bengt Mandersson)

Enkätsvar Sommarpraktik - Grundskola 2016

OLYCKSUNDERSÖKNING. Teglad enplans villa med krypvind Startutrymme: Torrdestillation av takkonstruktion Insatsrapport nr:

Tillämpning av integraler

Revisionsrapport Hylte kommun. Granskning av samhällsbyggnadsnämndens och tillsynsnämndens styrning och ledning. Iréne Dahl, Ernst & Young

parkour Biotop Existerande Äldrebostäder volleyboll Biotop Vatten Våtområde Fotosyntes Sinnesupplevelser Odlingsbäddar Biotop parkour

Våra värderingar visar vilka vi är resultat från omröstningen

där a och b är koefficienter som är större än noll. Här betecknar i t

Oleopass Bypass-oljeavskiljare av betong för markförläggning

1 e x2. lim. x ln(1 + x) lim. 1 (1 x 2 + O(x 4 )) = lim. x 0 x 2 /2 + O(x 3 ) x 2 + O(x 4 ) = lim. 1 + O(x 2 ) = lim = x = arctan x 1

ProMinent. Driftinstruktion Ultromat AT/96 och ATF/96 Serie V 4.0 Trekammaranläggning för beredning av polyelektrolyt

14. MINSTAKVADRATMETODEN

Finaltävling den 20 november 2010

Regionmagasinet. Är det alltid bäst med piller? Här finns fler än ett skelett i garderoben. Valet till regionfullmäktige görs om 15 maj

Tentamen i Databasteknik

Inlämningsuppgift 2 i Digital signalbehandling ESS040, HT 2010 Måndagen den 22 november 2010 i E:B.

Lektionsuppgifter i regressionsanalys

TSRT62 Modellbygge & Simulering

Kostnad per brukare. Vård och omsorg om äldre och personer med funktionsnedsättning 2014

Magnus Nielsen, IDA, Linköpings universitet

Lösningar till ( ) = = sin x = VL. VSV. 1 (2p) Lös fullständigt ekvationen. arcsin( Lösning: x x. . (2p)

Tentamen 1 i Matematik 1, HF sep 2017, kl. 9:00-13:00

Kylfrysguide [Namn] Elektroskandia Sverige AB [år-månad-dag]

Räkneövningar populationsstruktur, inavel, effektiv populationsstorlek, pedigree-analys - med svar

ZA5888. Flash Eurobarometer 372 (Women in Developing Countries) Country Questionnaire Sweden

Produktblad. Mechlift Pro E

ICKE-HOMOGENA LINJÄRA DIFFERENTIALEKVATIONER MED KONSTANTA KOEFFICIENTER, ENKLA HÖGERLED

1. (6p) (a) Använd delmängdskonstruktionen för att tillverka en DFA ekvivalent med nedanstående NFA. (b) Är den resulterande DFA:n minimal? A a b.

KLARA Manual för kemikalieregistrerare

Föreläsning 7. Signalbehandling i multimedia - ETI265. Kapitel 5. LTI system Signaler genom linjära system

PASS 1. RÄKNEOPERATIONER MED DECIMALTAL OCH BRÅKTAL

GRAFISK PROFILMANUAL SUNDSVALL NORRLANDS HUVUDSTAD

Så här gör du? Innehåll

GOLV. Norgips Golvskivor används som underlag för golv av trä, vinyl, mattor och andra beläggningar. Här de tre viktigaste konstruktionerna

Kontinuerliga fördelningar. b), dvs. b ). Om vi låter a b. 1 av 12

Innehåll. Föreläsning 12. Binärt sökträd. Binära sökträd. Flervägs sökträd. Balanserade binära sökträd. Sökträd Sökning. Sökning och Sökträd

Transkript:

Dtstrukturr och lgoritmr Förläsning 9 Träd Innhåll Modllr/tillämpningr för träd Orgnistion och trminologi Signturdigrm för ordnt träd Olik typr v träd Trädlgoritmr Implmnttion v träd Modll/tillämpningr för träd Modll: Ordnt träd: Ordrvägrn i tt rgmnt Binärt träd: Stmtvl/släktträd Tillämpningsxmpl inom dtvärldn: Filsystm Klsshirrkir i OOP Bslut-/sök-/splträd inom AI Exkvring v logisk språk xvis prolog 3 4 Orgnistion och trminologi (1) Orgnistion och trminologi (2) Vrj träd hr minst n nod - rotn Om dt finns flr nodr så finns dt också grnr löv hr trädn också! Elmntn i tt träd klls för nodr. En nod hr n position och v. tt värd. Värdt på n nod klls tiktt. All nodr på n nivå som hr smm föräldr klls syskon. Ett träd hr tt ändligt ntl nodr och är n homogn dttyp. Föräldr-brn hirrki. Dlträd = n nod och dss vkomm. En nod utn brn klls löv Nivå 1 Nivå 2 Nivå 3 Nivå 4 5 6 1

Orgnistion och trminologi (3) Signturdigrm för ordnt träd Ett träds nodr finns på olik nivår. Höjdn h(x) för nod x är ntlt bågr på dn längst grnn i dt träd där x är rot. Höjdn v tt träd T, h(t) = h(rotn) h() = 0, h(b) = 2 och h(c) = 3 = h(t) Djupt d(x) hos n nod x är ntlt bågr från x upp till rotn. d() = 3, d(b) = 1, d(c) = 0 b c Nivå 1 Nivå 2 Nivå 3 Nivå 4 Nvigringsorintrd vs dlträdsorintrd spcifiktion v träd. Om mn rbtr md nstk träd som förändrs långsmt löv för löv så är nvigringsorintrd bättr. Hållr mn på md träd och dlträd som mn vill dl upp llr slå smmn är dlträdsorintrd bättr. nivå(x) = d(x) + 1 7 8 Signturdigrm för ordnt träd Olik typr v träd 9 Ordnt träd (x militärhirrki) Syskonn är linjärt ordnd Oordnt träd (x filsystmt på n dtor) Ordningn blnd syskonn hr ingn btydls Urträd Mr bstrkt än d två ovnstånd. Hr n gn dttyp som hntrr syskonn. Vi kn int h md någr oprtionr som förutsättr något om hur brnn är orgnisrd. Kvr blir Insrt-childrn som stoppr in n mängd md brn och childrn som tr frm brnn till n nod. 10 Olik typr v träd Riktd träd Mn kn br gå i n riktning i trädt, upp llr nr I tt ndåtriktt träd skns Prnt I tt uppåtriktt träd skns Childrn. Dt måst gå tt nå något nnt än rotn, t.x n oprtion som rturnrr ll löv. Binär träd (x stmtvl) Vrj nod hr högst två brn Vnligt och myckt nvändbrt 11 Bgrppspus om ordning Ordnd Används för tt bskriv olik sätt tt ordn lmnt i tt objkt En list är ordnd v för/ftr-rltionn Riktd När dt finns n ssymtri när dt gällr oprtionr för tt nvigr från tt lmnt till tt nnt Sortrd När lmntvärdn är sortrd nligt någon ordningsrltion 12 2

Binär träd (1) Mximl och miniml höjd En nod i tt binärt träd kn h högst två brn Brnn klls vänstr- och högrbrn Dt ndr brnt kn komm för dt först Trädn ndn är OLIKA binär träd (mn smm ordnd träd md mx två brn ). Mximl höjd (n-1) för n=3, n nod/nivå Miniml höjd, mn kn int flytt om någr nodr och få n mindr höjd: 13 Miniml Ej miniml 14 Binär träd (2) Binär träd (3) För binär träd T md n nodr och höjd h gällr: h n 1 (mximl höjdn) h log2(n + 1) 1 Antlt nodr på djup i är 2 i dvs 1, 2, 4, 8... Antlt nodr totlt i trädt: n 2 (h+1) 1 Ett träd hr miniml höjd om n > 2 h 1 vilkt gr log 2 (n + 1) 1 h < log2(n + 1) dvs h är v O(log 2 (n)) Mn vill h så grund träd som möjligt Om vänstr och högr dlträd är ungfär lik stor hr trädt blns och vägn till n slumpvis vld nod är O(log 2 (n)) Kompltt binärt träd (Rätt br blns) Fyllr på trädt från vänstr till högr, n nivå i tgt Fullt binärt träd (Oft dålig blns) Vrj nod är ntingn tt löv llr hr två brn 15 16 Algoritmr Trvrsring v träd Bslgoritmr för träd Djup Höjd Slå ihop Dl upp Bräkn Trvrsr Tillämpningr v träd involvrr oft tt mn Sökr ftr tt lmnt md viss gnskpr Trnsformrr (omvndlr) strukturn till n nnn struktur Filtrrr ut lmnt md viss gnskpr All dss byggr på tt mn trvrsrr strukturn, dvs tt mn går ignom trädt 17 18 3

Trvrsring v träd Brddn-först Undrsök n nivå i tgt. Först rotn, sdn rotns ll brn, dss brnbrn osv. En kö är oft till hjälp vid implmnttionn Vrj nod i trädt bsöks ndst n gång, dvs O(n). Sökr mn något som finns så hittr mn dt. Trvrsring v träd Brddn-först Algoritm bfordr(tr T) input: A tr T to b trvrsd for ch lvl L of T do for ch nod of L do comput(nod), b, c, d,, f, g, h, i, j 19 20 Trvrsring v träd Djupt-först Följ vrj grn från rotn till lövt Stck till hjälp vid implmntringn Vrj nod bsöks ndst n gång, dvs O(n) Tr vrintr: Prordr Postordr Inordr Prordr Algoritm prordr(tr T) input: A tr T to b trvrsd comput(root(t)) // Do somthing with nod for ch child w of root(t) do prordr(w) prordr(bintr T) comput(root(t)) prordr(lftchild(t)) prordr(rightchild(t)) 21 22 Prordr Prordr - läs tt dokumnt, b, c, d, f, g,, h, i, j 23 24 4

Postordr Algoritm postordr(tr T) input: A tr T to b trvrsd for ch child w of root(t) do postordr(w) comput(root(t)) // Do somthing with nod postordr(bintr T) postordr(lftchild(t)) postordr(rightchild(t)) comput(root(t)) Postordr b, c, f, g, d, h, i, j,, 25 Postordr bräkn ritmtisk uttryck Algoritm vlutexprssion(tr t) If islf(t) rturn gtvlu(t) ls op <- gtvlu(t) x <- vlutexprssion(lftchild(t)) y <- vlutexprssion(rightchild(t)) op <- gtvlu(t) rturn x op y Notr tt dtt är n postordr-lgoritm op nvänds ftr dt tt dlträdn vlurts gtvlu kn flytts sist * + 3-2 3 1 9 5 / + Inordr Algoritm inordr(tr T) input: A tr T to b trvrsd nod <- root(t) inordr(firstchild(t)) comput(nod) // Do somthing with nod for ch child w of nod (xcpt first) do inordr(w) inordr(bintr T) inordr(lftchild(t)) comput(root(t)) inordr(rightchild(t)) 27 28 Inordr Inordr - skriv ritmtisk uttryck b,, c, f, d, g, h,, i, j Algoritm printexprssion(tr t) print ( if hslftchild(t) thn printexprssion(lftchild(t)) print gtvlu(t) if hsrightchild(t) thn printexprssion(rightchild(t)) print ) * / + ( ( ( (3) + (1)) * 3) / ((9-5) + 2 ) + 3-2 3 1 9 5 29 30 5

Trädd binär träd Tillämpningr v träd Ndåtriktd binär träd hr ldig länkr. Utnyttj dss för tt trä gnvägr i trädt. Dt är vnligt tt skp inordrträdd träd. Dtt gör tt mn kn trvrsr md hjälp v itrtion iställt för rkursion. Sprr minn Konstruktionr v ndr typr (spcillt binär träd) Sökträd Vrj nod symbolisrr tt givt tillstånd. Brnn symbolisrr d olik tillstånd mn kn hmn i utifrån föräldrns tillstånd. Dt gällr tt hitt målnodn, dvs tt tillstånd som lösr problmt. Int rimligt tt bygg upp ll nodr (möjlig) tillstånd dt kn finns oändligt mång Lft rcursion kn bli tt problm Oft nvänds huristik 31 32 Tillämpningr Implmnttionr v träd Plnträd och OCH/ELLER-träd Nodrn symbolisrr hur mn brytr nd tt stort problm i mindr dlr och i vilkn ordning mn bör lös dss mindr dlproblm. Oft nvändr mn OCH/ELLER-träd där mn kn h OCH-kntr llr ELLER-kntr mlln föräldr och brn. OCH ll brn bhövs för lösningn ELLER något brn bhövs Dt finns också syntx llr prsträd som visr hur tt språk är uppbyggt Oordnt uppåtriktt träd som fält Vrj lmnt i n vktor bstår v tt pr: nodns tiktt och n rfrns till föräldrn. + Tr litn plts - Ingt br stöd för trvrsring (t x svårt vt vilk nodr som är löv) - Mximl storlkn på trädt måst bstämms i förväg Finns flr olik förslg i bokn. Läs och fundr! 33 34 Implmnttionr v träd Implmnttionr v träd Ordnt träd som n-länkd struktur Nodn i trädt bstår v n-cllr md tiktt, länk till föräldrn och n-1 länkr till brnn + Antlt nodr i trädt dynmiskt. - Mximl ntlt brn bstämt i förväg. - Om dt är stor vrition i ntlt brn så finns outnyttjd länkr. Ndåtriktt ordnt träd som 1-länkd struktur md list v brn Nodn i trädt bstår v 1-cllr md tiktt, n länk till n brnlist + Antlt nodr i trädt dynmiskt. + Antlt brn i nätt dynmiskt Utök till 2-cllr så blir trädt oriktt Nodn får n länk till föräldrn, tiktt smt länk till brnlist. 35 36 6

Implmnttionr v träd Implmnttionr v träd Nodr som hållr rd på föräldr, först brn och syskon. Uppåtriktt binärt träd md hjälp v 1-cll Ndåtriktt binärt träd md 2-cll Oriktt binärt träd md 3-cll 37 38 Implmnttionr v träd Binärt träd som fält Rotn hr indx 1 och nodn md indx i hr sitt vänstrbrn i nodn md indx 2*i sitt högrbrn i nodn md indx 2*i +1 sin föräldr i nodn md indx floor(i/2) + Tr ingt utrymm för strukturinformtion - Trädt hr tt mxdjup (sttiskt fält) - Krävs mrkörr för null och tom nod - Ev. slösri md utrymm 39 7