Presentasjon lastes. Vennligst vent

Presentasjon lastes. Vennligst vent

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

Liknende presentasjoner


Presentasjon om: "INF 295 Algoritmer og datastrukturer Forelesning 8 Trær Hans Fr. Nordhaug (Ola Bø)"— Utskrift av presentasjonen:

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

2 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.

3

4 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).

5 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

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

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

8 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

9 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.

10

11 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

12 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 +*-*-- 2 8 7 4 5 33


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

Liknende presentasjoner


Annonser fra Google