INF 295 Algoritmer og datastrukturer Forelesning 8 Trær Hans Fr. Nordhaug (Ola Bø)

Slides:



Advertisements
Liknende presentasjoner
@ TDT4120 Algoritmer og datastrukturer Trær og søking i dem, samt litt diverse emner Åsmund Eldhuset asmunde idi.ntnu.no.
Advertisements

TDT4120 Algoritmer og datastrukturer Trær og søking i dem, samt litt diverse emner Kristian Veøy
Uke 10 - Sortering, og hvordan lage en klasse for et klassebibliotek 21 okt. 2003, Arne Maus Inst. for informatikk, UiO.
Programmering i Java versjon januar 2005 Kun til bruk i tilknytning til læreboka ”Programmering i Java” skrevet av Else.
Øvingsforelesning 9 Flytnettverk, maksimum flyt og maksimum bipartitt matching Jon Marius Venstad Redigert og forelest av Gleb Sizov.
Forelesning nr.2 INF 1411 Elektroniske systemer
Forside Korteste sti BFS Modifikasjon Dijkstra Eksempel Korrekthet Analyse Øving Spørsmål Dijkstras algoritme Åsmund Eldhuset asmunde *at* stud.ntnu.no.
@ TDT4120 Algoritmer og datastrukturer Trær og søking i dem, samt litt diverse emner Åsmund Eldhuset asmunde idi.ntnu.no.
Dijkstras algoritme Åsmund Eldhuset asmunde *at* stud.ntnu.no
Øvingsforelesning 9 Flytnettverk, maksimum flyt og
1 Øvingsforelesning Andreas Knudsen Nils Grimsmo
Øvingsforelesning 3 Grafer, BFS, DFS og hashing
Øvingsforelesning 2 Trær og søking i dem, samt litt diverse emner Kristian Veøy
Alg. Dat Øvingsforelesning 3 Grafer, BFS, DFS og hashing Børge Rødsjø
Øvingsforelesning Magnus Haug
INF 295 Forelesning 15 - kap 9 Grafer Hans Fr. Nordhaug (Ola Bø)
Del- operator Egenskaper. Del-operator Definisjon Notasjon Del-operator.
Algoritmer og Datastrukturer
Kap 07 Stakk I dette kapitlet skal vi se på datastrukturen stakk.
1 Kap 08 Kø. 2 Kø - Definisjon En kø (eng queue) er en lineær struktur hvor elementer kan innsetttes kun i den ene enden av listen, kalt bak, og fjernes.
Kap 10 Graf.
Oversikt Den delen av Standard C++ Library som tidligere var STL Konsepter i STL: –Iteratorer –Samlinger (containers) –Algoritmer –Funksjonsobjekter.
INF 295 Algoritmer og datastrukturer Forelesning 21 Merge, Quick og Bøtte, Radix og ekstern sortering Hans Fr. Nordhaug (Ola Bø)
INF 295 Algoritmer og datastrukturer Forelesning 7 ADT Lister, Stakker og Køer Hans Fr. Nordhaug (Ola Bø)
INF 295 Algoritmer og datastrukturer Forelesning 1 - kapittel 1 Introduksjon Hans F. Nordhaug (Ola Bø) (Ketil Danielsen, 2007)
INF 295 forelesning 14 - kap 8 Disjunkt mengde ADT Hans Fr. Nordhaug (Ola Bø)
INF 295 Algoritmer og datastrukturer Forelesning 9a Søketrær Hans Fr. Nordhaug (Ola Bø)
INF 295 forelesning 13 - kap 6 Prioritetskø (Heap) Hans Fr. Nordhaug (Ola Bø)
INF 295 Forelesning 16 - kap 9 Minimalt spenntre og korteste vei i grafer Hans Fredrik Nordhaug (Ola Bø)
INF 295 Algoritmer og datastrukturer Forelesning 11 Når RAM ikke strekker til - B-trær og Utvidbar hashing Hans Fr. Nordhaug (Ola Bø)
INF 295 Forelesning 17 - kap 9 Korteste vei i grafer Hans Fr. Nordhaug (Ola Bø)
INF 295 Forelesning 20 - Kapittel 7 Boble-, innstikk-, Shell-, Heap-, Quick-, Mergesortering Hans Fr. Nordhaug (Ola Bø)
Hans Fr. Nordhaug (Ola Bø)
INF 295 Algoritmer og datastrukturer Forelesning 4 Algoritmeanalyse Hans Fr. Nordhaug (Ola Bø)
INF 295 Algoritmer og datastrukturer Forelesning 2 - kapittel 1 Hans F. Nordhaug (Ola Bø)
INF 295 forelesning 13 - kap 6 Andre prioritetskøer Hans Fr. Nordhaug (Ola Bø)
INF 295 Forelesning 18 - kap 9 Aktivitetsgrafer
INF 295 Algoritmer og datastrukturer Forelesning 6 ADT Lister, Stakker og Køer Hans Fr. Nordhaug (Ola Bø)
INF 295 Algoritmer og datastrukturer Forelesning 24 Repetisjon
INF 295 Algoritmer og datastrukturer Forelesning 9b Balanserte (binære) trær Hans Fr. Nordhaug.
INF 295 Forelesning 19 - Dynamisk programmering Korteste vei alle til alle (Floyd) Hans Fr. Nordhaug (Ola Bø)
INF 295 Algoritmer og datastrukturer Forelesning 10 Invarianter og Hashing Hans Fr. Nordhaug (Ola Bø)
Grunnleggende PHP - Ronny Mandal1 Grunnleggende PHP.
Hovedfagspresentasjon
INF 4130 Eksamen 2008 Gjennomgang.
Magnus Haug Algoritmer og Datastrukturer
1 INF5110 – 23. april, 2013 Svar på noen oppgaver til kap. 8 Beklager noe trykkfeil og rot på forelesningene Håper dette er bedre (lagt ut 24/4) Nå fredag.
Kap 09 Tre.
INF3100 – – Ellen Munthe-Kaas Indeksering UNIVERSITETET I OSLO © Institutt for Informatikk Utvalgte animerte lysark: lysark nr. 7, 8, 9, 10,
INF 295 forelesning 12 Repetisjon per 17. februar Hans F. Nordhaug (Ola Bø)
Alg. Dat Øvingsforelesning 11 Dynamisk programmering, grådighet
INF 295 Algoritmer og datastrukturer Forelesning 5 Algoritmeanalyse Hans Fr. Nordhaug (Ola Bø)
INF 295 Algoritmer og datastrukturer Forelesning 22 Teknikker for algoritmeutvikling Hans Fr. Nordhaug/ Ola Bø.
Kontekstfri grammatikk Endelig mengde T av terminal(symbol)er Endelig mengde V av ikke-terminal(symbol)er Startsymbol S Endelig mengde P av produksjoner.
Sorterings- Algoritmer Algoritmer og Datastrukturer.
Sterke og 2-sammenhengende komponeneter, DFS
Prioritetskøer Binære heaper Venstrevridde heaper (Leftist) Skeive heaper (Skew) Binomialheaper Fibonacciheaper Prioritetskøer er viktige i bla. operativsystemer.
1 INF oktober 2010 Stein Krogdahl Foreløpige foiler Dagens program: –Første time: Kap 23.5: Trær og strategier for spill med to spillere –Andre.
Routing Indices For P2P Systems TDT2 – Avanserte Distribuerte Systemer Lars-Erik Bjørk.
Praktisk Midtveisevaluering av kurset («femminutterslapper») i pausen. Undervisningsfri neste uke (ingen forelesninger eller grupper). NM i programmering.
INF 295 Algoritmer og datastrukturer Web-spider Oblig 3 Hans Fr. Nordhaug (Ola Bø)
Inf1000 (Uke 5) Arrayer, filer og tekst
LOG530 Distribusjonsplanlegging
Kapittel 12 Samlingar Samlingar og datastrukturar Ei samling (collection) blir brukt til å oppbevare og handtere andre objekt ArrayList – klassen.
INF 295 Algoritmer og datastrukturer Forelesning 23 Kompleksitet Hans Fr. Nordhaug/ Ola Bø.
Iterator i Java boolean hasNext() E next() void remove()
1 Øvingsforelesning 4 Topologisk sortering Minimale spenntrær Håkon Jacobsen
INF5110 – 23. april, 2013 Svar på noen oppgaver til kap
Det er mange måter å gjøre det på
Utvalgte animerte lysark: lysark nr. 7, 8, 9, 10, 26, 28, 30, 33, 35
Utskrift av presentasjonen:

INF 295 Algoritmer og datastrukturer Forelesning 8 Trær Hans Fr. Nordhaug (Ola Bø)

Trær Et tre er en samling noder, som kan være tom eller bestå av en rotnode r og null eller flere subtrær. Hvert subtre har en rotnode som er knyttet rotnoden r med en rettet kant fra r. r er forelder til hver av undertrærne og rotnoden i hvert undertre er et barn av r. Hvis treet har N noder har det N-1 kanter. Noder som ikke har barn kalles blad-noder (leaf nodes). Noder med samme forelder er søsken (siblings). Nodene tegnes normalt som sirkler.

Mer om trær Sti (path) og lengde mellom to noder. Lengde er antall kanter. Dybden og høyden til en node. Dybde er lengden fra rota til noden. Høyden er største lengde nedover fra noden til en bladnode (løvnode). Høyden til et tre Er høyden til rotnoden. Forfedre (ancestors) og etterkommere (descendants).

Enda mer om trær Implementering av trær Forslag 1: Hver node inneholder pekere til alle barna Men antall barn kan variere og vi vet ikke antall på forhånd Forslag 2: Hver node har en liste med pekere til alle barna Kan kanskje gjøre det enklere? Fortsettelse følger! Anvendelser Filorganisering, klassehierarki Organisasjonskart, slektstrær Delstrukturer

Anvendelser av trær Daglig leder Avdelings- leder Mekaniker Sveiser

Implementering av trær class TreeNode{ Object element; TreeNode firstChild; TreeNode nextSibling; }

Tretraversering Vil si å besøke alle (eller noen) av nodene for å søke etter, sette inn eller fjerne en node, oppdatere eller lese av nodene. Rekkefølgen avhenger av hva vi skal gjøre. To vanlige traverseringsmåter: PreOrder: arbeidet gjøres ved forelder før det gjøres ved barn A B D E C F G H I PostOrder: arbeidet gjøres ved alle barn før det gjøres ved foreldre D E B F G I H C A

Binærtrær I et binærtre har ingen node mer enn to barn For generell trær er høyden er vanligvis mye mindre enn N og i gjennomsnitt er dybden For binært søketre er gjennomsnittsdybden I verste tilfelle kan dybden bli N-1. Implementeres med en venstre- og høyre- peker i hver node.

Traversering av binærtrær Tre muligheter Preorder - foreldrenoden behandles før barna Inorder - foreldrenoden behandles etter venstre, men før høyre barn. (Ikke definert for generelle trær.) Postorder - foreldrenoden behandles etter barna

Eksempel: Uttrykkstrær Løvnodene er operander De indre nodene inneholder operatorer (2+3)*7-(4-3)*5-8 Preorder traversering gir prefix Postorder traversering gir postfix Inorder traversering gir infix +*-*