Trær. Består av sammenkoblede noder Hver node har 0 eller flere barne-noder. Må være asyklisk. Et tre med n noder har n-1 kanter.

Like dokumenter
Enkle datastrukturer. Lars Greger Nordland Hagen. Introduksjon til øvingsopplegget og gjennomgang av python

Balanserte binære søketrær

Binære trær: Noen algoritmer og anvendelser

Repetisjon: Binære. Dagens plan: Rød-svarte trær. Oppgave (N + 1)!

Magnus Moan (Undertegnede) Enkle datastrukturer, trær, traversering og rekursjon

Et eksempel: Åtterspillet

Definisjon av binært søketre

Definisjon: Et sortert tre

INF2220: Gruppe me 2. Mathias Lohne Høsten 2017

Oppsummering. MAT1030 Diskret matematikk. Oppsummering. Oppsummering. Eksempel

INF2220: Forelesning 2

Binære søketrær. En ordnet datastruktur med raske oppslag. Sigmund Hansen

Kap 9 Tre Sist oppdatert 15.03

Dagens plan: INF Algoritmer og datastrukturer. Repetisjon: Binære søketrær. Repetisjon: Binære søketrær

Ny/utsatt EKSAMEN. Dato: 5. januar 2018 Eksamenstid: 09:00 13:00

INF2220: Forelesning 2

INF2220: Forelesning 2. Balanserte søketrær Rød-svarte trær (kapittel12.2) B-trær (kapittel 4.7)

Definisjon. I et binært tre har hver node enten 0, 1 eller 2 barn

Object [] element. array. int [] tall

Trær. En datastruktur (og abstrakt datatype ADT)

Selv-balanserende søketrær

INF2220: Forelesning 1. Praktisk informasjon Analyse av algoritmer (kapittel 2) (Binær)trær (kapittel )

Notater til INF2220 Eksamen

Lars Vidar Magnusson

Sist forelesning snakket vi i hovedsak om trær med rot, og om praktisk bruk av slike. rot. barn

Lars Vidar Magnusson Kapittel 13 Rød-Svarte (Red-Black) trær Rotasjoner Insetting Sletting

PG4200 Algoritmer og datastrukturer Forelesning 7

... Når internminnet blir for lite. Dagens plan: Løsning: Utvidbar hashing. hash(x) katalog. O modellen er ikke lenger gyldig ved

MAT1030 Diskret matematikk

EKSAMEN. Dato: 28. mai 2018 Eksamenstid: 09:00 13:00

UNIVERSITETET I OSLO

Heap* En heap er et komplett binært tre: En heap er også et monotont binært tre:

INF110 Algoritmer og datastrukturer TRÆR. Vi skal i denne forelesningen se litt på ulike typer trær:

EKSAMEN med løsningsforslag

INF Algoritmer og datastrukturer

Heap og prioritetskø. Marjory the Trash Heap fra Fraggle Rock

Et eksempel: Åtterspillet

Fra Kap.10 Binære søketre (BS-tre) Sist oppdatert Definere en abstrakt datastruktur binært søketre. Vise hvordan binær søketre kan brukes

EKSAMENSOPPGAVE. INF-1101 Datastrukturer og algoritmer. Adm.bygget, rom K1.04 og B154 Ingen

Kap.12. Flervegssøketre. Studerer 2-3 og 2-4 trær. Sist oppdatert

INF2220: Forelesning 1

Binær heap. En heap er et komplett binært tre:

Sist gang (1) IT1101 Informatikk basisfag. Sist gang (2) Oppgave: Lenket liste (fysisk) Hva menes med konseptuelt og fysisk i forb med datastrukturer?

Algoritmer og Datastrukturer

INF2220: Forelesning 1

INF Algoritmer og datastrukturer

INF Algoritmer og datastrukturer

Binære søketrær. Et notat for INF1010 Stein Michael Storleer 16. mai 2013

LO118D Forelesning 12 (DM)

Dagens tema. INF Algoritmer og datastrukturer. Binærtrær. Generelle trær

INF Algoritmer og datastrukturer

INF Algoritmer og datastrukturer

INF Algoritmer og datastrukturer. Hva er INF2220? Algoritmer og datastrukturer

IN Algoritmer og datastrukturer

EKSAMEN. Dato: 18. mai 2017 Eksamenstid: 09:00 13:00

Algoritmer og datastrukturer Kapittel 9 - Delkapittel 9.4

Flerveis søketrær og B-trær

ALGORITMER OG DATASTRUKTURER

Løsnings forslag i java In115, Våren 1998

Alg. Dat. Øvingsforelesning 3. Grafer, BFS, DFS og hashing. Børge Rødsjø

EKSAMEN. Dato: 9. mai 2016 Eksamenstid: 09:00 13:00

EKSAMEN. Algoritmer og datastrukturer

INF2220: Time 4 - Heap, Huffmann

Uke 5 Disjunkte mengder

UNIVERSITETET I OSLO

Algoritmer og datastrukturer Løsningsforslag

Pensum: fra boken (H-03)+ forelesninger

Algoritmer og datastrukturer Eksamen 22. februar 2011

INF2220: Time 12 - Sortering

Hva er en algoritme? INF HØSTEN 2006 INF1020. Kursansvarlige Ragnar Normann E-post: Dagens tema

EKSAMEN Løsningsforslag. med forbehold om bugs :-)

Alg. Dat. Øvingsforelesning 3. Grafer, BFS, DFS og hashing

Pensum: fra boken (H-03)+ forelesninger

INF Algoritmer og datastrukturer

Algoritmer og Datastrukturer

Algoritmer og datastrukturer Eksamen

Vi skal se på grafalgoritmer for:

Rekursiv programmering

E K S A M E N. Algoritmiske metoder I. EKSAMENSDATO: 11. desember HINDA / 00HINDB / 00HINEA ( 2DA / 2DB / 2EA ) TID:

Eksamensoppgave i TDT4120 Algoritmer og datastrukturer

Generelle trær BINÆRTRÆR. Binærtrær

Eksamensoppgave i TDT4120 Algoritmer og datastrukturer

Øvingsforelesning 2 - TDT4120. Grafer og hashing. Benjamin Bjørnseth

Løsnings forslag i java In115, Våren 1999

Eksamen iin115, 14. mai 1998 Side 2 Oppgave 1 15 % Du skal skrive en prosedyre lagalle som i en global character array S(1:n) genererer alle sekvenser

Eksempel: Uttrykkstrær I uttrykkstrær inneholder bladnodene operander (konstanter, variable,... ), mens de interne nodene inneholder operatorer.

Oppgavesettet består av 7 sider, inkludert denne forsiden. Kontroll& at oppgaven er komplett før du begynner å besvare spørsmålene.

Et eksempel: Åtterspillet

Binære Søketre. Egenskap. Egenskap : Grafisk. Egenskap : Kjøretid. Egenskap : Kjøretid. Egenskap : Oppsumering. Binære Søketre

Algoritmer og datastrukturer

KONTINUASJONSEKSAMEN

INF Algoritmer og datastrukturer

MAT1030 Diskret Matematikk

E K S A M E N. Algoritmiske metoder I. EKSAMENSDATO: 11. desember HINDA / 99HINDB / 99HINEA / 00HDESY ( 2DA / 2DB / 2EA / DESY )

IN Algoritmer og datastrukturer

ALGORITMER OG DATASTRUKTURER

Datastrukturer. Stakker (Stacks) Hva er en datastruktur? Fordeler / Ulemper. Generelt om Datastrukturer. Stakker (Stacks) Elementære Datastrukturer

Grunnleggende Grafteori

INF Algoritmer og datastrukturer

Algoritmer og Datastrukturer

Transkript:

Generelle trær: Trær Består av sammenkoblede noder Hver node har 0 eller flere barne-noder. Må være asyklisk. Et tre med n noder har n-1 kanter. løvnoder kant rotnode sub-tre 1

Generelle trær: Oppbygging Variant 1: Noden har kjenskap til: Foreldrenoden Alle barnenodene. Variant 2: Noden har kjenskap til: Foreldrenoden Venstre barnenode. Nærmeste søsken. (kjennskap er markert med rødt) 2

Generelle trær: Traversering Inorder: Venstre subtre behandles før rotnoden. Deretter høyre subtre. Preorder: Rotnoden behandles først. Deretter de to subtrærne. Postorder: De to subtrærne behandles først. Deretter behandles rotnoden. 1 2 3 (preorder) 2 1 3 (inorder) 3 1 2 (postorder) 3

Generelle trær: Bredde først søk Implementeres med kø. Putt rotnoden i kø. Pop node fra køen. Putt alle barna på køen. Gjenta til køen er tom. 4 7 8 9 10 2 1 5 3 6 11 12 4

Generelle trær: Dybde først søk Implementeres med stack eller rekursjon. (her ved rekursjon) Kall dfs på rotnoden. dfs(node n): Kall dfs på barnenodene Behandle noden n. 3/10 2/19 1/24 11/18 4/5 6/7 8/9 12/17 20/23 13/14 15/16 21/22 5

Binære søketrær: Binære søketrær Hver node kan ikke ha flere en 2 barn. Verdien i en node er større enn alle verdiene i venstre subtre, og mindre enn alle verdiene i høyre subtre 30 13 41 7 18 50 5 8 24 21 27 6

Binære søketrær: Start i rotnoden Søk Gå til venstre hvis verdien i valgt node er høyere enn ønsket node. Høyre hvis motsatt. Gjenta til ønsket node er funnet, eller det ikke er mulig å gå lenger. Hvor er 21? 30 13<21 13 41 Høyre 18<21 7 18 50 Høyre 5 8 24 30>21 Venstre 24>21 Venstre 21=21 Ferdig! 21 27 7

Binære søketrær: Minimum/Maksimum Minimum: Start i rotnoden. Velg venstre barn. Gjenta til du kommer til en løvnode. Den har minste verdi. Maksimum: Symetrisk av minimum. Minste verdi? 30 13 41 7 18 50 5 8 24 5 er minst 21 27 8

Binære søketrær: Foregående/etterfølgende verdi Etterfølgende verdi: Dersom noden har et høyre barn, finn minste verdi i det høyre sub-treet. Hvis ikke, finn første foreldrenoden som ikke har forrige node som høyre barn. Foregående verdi: Symetrisk av etterfølgende verdi. 30 13 41 7 18 50 5 8 24 Neste tall er? 30 er neste 21 27 9

Binære søketrær: Implementasjon Kan implementeres med array. Slektskap til node i: Foreldre: i / 2 Venstre barn: 2i Høyre barn: 2i + 1 Se figur 6.1 (s 128) 30 13 41 7 18 50 1 2 3 4 5 6 7 30 13 41 7 18-50 VIKTIG: Tabellen starter på 1. 10

Binære søketrær: Innsetting Fungerer veldig likt søk. Søk etter verdien til den nye noden. Plasser noden som venstre/høyre barn avhengig av verdien. 6 30 13 41 7 18 50 5 8 24 6 21 27 11

Binære søketrær: Sletting Se side 262. 30 13 41 7 18 50 5 8 24 21 27 12

Rød-svarte trær: Rød-svarte trær Variant av binært tre. I denne tretypen får hver node tildelt en farge, enten rød eller svart, basert på tre regler: Roten i treet er svart Om en node er rød, må barna være svarte Alle stier fra en node til en løvnode må inneholde det samme antallet svarte noder. Garanterer en makshøyde på 2log(N+1) 13 7 30 5 8 18 50 24 41 13

Rød-svarte trær: Rotasjon Venstre-rotering: Sett node A som B sitt venstre barn. Sett node C som A sitt høyre barn. Høyre-rotering: Symetrisk av venstre-rotering. 30 A 13 41 B 35 C 50 41 B 30 A 50 13 35 C (røde kanter er endrede kanter) 14

Rød-svarte trær: Innsetting Sett inn noden på samme måte som ved innsetting i et vanlig binær-tre. Farg noden rød. Rydd opp! 6 30 13 41 7 18 50 5 8 24 6 21 27 15

Rød-svarte trær: Opprydding (1) Case 1: Z s onkely er rød. Farg Z s far og onkel svarte. Farg Z s bestefar rød. Fortsett oppryddning fra Z s bestefar. 5 Z 13 7 30 13 Ny Z 7 30 Y 5 16

Rød-svarte trær: Opprydding (2) Case 2: Z s onkely er svart,og Z er et høyre barn. Venstreroter Z og X for å få endret til case 3. Fortsett m ed case 3 - opprydding. 13 5 X 30 7 Z 13 Y 7 30 5 Ny Z 17

Rød-svarte trær: Opprydding (3) Case 3: Z s onkely er svart,og Z er et venstre barn. Høyreroter X og W Farg X svart Farg W rød. 5 Z 13 W 7 X 30 7 Y 5 13 30 18