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

Save this PDF as:
 WORD  PNG  TXT  JPG

Størrelse: px
Begynne med side:

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

Transkript

1 Dagens tema INF Algoritmer og datastrukturer HØSTEN 2007 Institutt for informatikk, Universitetet i Oslo INF2220, forelesning 2: Binærtrær og abstrakte datatyper (ADT) Kort repetisjon Generelle trær (kap. 4.) Binærtrær (kap. 4.2) Implementasjon Traversering (kap. 4.3) Definisjon Søking, innsetting og sletting Gjennomsnitts-analyse (!) Eksempel: Ibsens skuespill (kap. 3.) Lister (kap. 3.2), stakker (kap. 3.3), køer (kap. 3.4) Einar Broch Johnsen (Ifi, UiO) INF2220 H2007, forelesning 2 / 38 Einar Broch Johnsen (Ifi, UiO) INF2220 H2007, forelesning 2 2 / 38 Generelle trær Program class A class B class C Binærtrær Binærtrær Et binærtre er et tre der hver node aldri har mer enn to barn. Hvis det bare er ett subtre, må det være angitt om dette er venstre eller høyre subtre. class D int i int i int j int tall String s char c c l a s s TreNode { Object element ; TreNode f o r s t e B a r n ; TreNode n e s t e S o s k e n ; I verste fall blir dybden N-! Einar Broch Johnsen (Ifi, UiO) INF2220 H2007, forelesning 2 3 / 38 Einar Broch Johnsen (Ifi, UiO) INF2220 H2007, forelesning 2 4 / 38

2 Binærtrær Implementasjon av binærtrær Eksempel: Uttrykkstrær Binærtrær I uttrykkstrær inneholder bladnodene operander (konstanter, variable,... ), mens de interne nodene inneholder operatorer. Siden hver node har maks to barn, kan vi ha pekere direkte til dem: c l a s s BinNode { Object element ; BinNode v e n s t r e ; BinNode h o y r e ; Eksempel * * Mulige skrivemåter for dette uttrykket: Prefiks: * * Infiks: (5 + 3) * (2 * ( + 4)) Postfiks: * * + 4 Alle disse eksemplene bruker dybde-først traversering. Dette er det vanligste for trær. (Bredde-først er også mulig, da brukes gjerne en kø.) Einar Broch Johnsen (Ifi, UiO) INF2220 H2007, forelesning 2 5 / 38 Einar Broch Johnsen (Ifi, UiO) INF2220 H2007, forelesning 2 6 / 38 Binærtrær Traversering av binærtrær oversikt Oppgave 4.5 Binærtrær Vis at et binærtre med høyde h har maksimalt 2 h+ noder. v o i d t r a v e r s e r ( BinNode n ) { i f ( n!= n u l l ) { < Gjø r PREFIKS o p e r a s j o n e n e > t r a v e r s e r ( n. v e n s t r e ) ; < Gjø r INFIKS o p e r a s j o n e n e > t r a v e r s e r ( n. h o y r e ) ; < Gjø r POSTFIKS o p e r a s j o n e n e > Einar Broch Johnsen (Ifi, UiO) INF2220 H2007, forelesning 2 7 / 38 Einar Broch Johnsen (Ifi, UiO) INF2220 H2007, forelesning 2 8 / 38

3 Variant av binærtrær hvor følgende gjelder for hver node i treet: Alle verdiene i nodens venstre subtre er mindre enn verdien i noden. Alle verdiene i nodens høyre subtre er større enn verdien i noden Søking: Rekursiv metode Antar klasse BinNode med attributter tall, venstre, hoyre. p u b l i c BinNode f i n n ( i n t x, BinNode t ) { i f ( t == n u l l ) { r e t u r n n u l l ; e l s e i f ( x < t. t a l l ) { r e t u r n f i n n ( x, t. v e n s t r e ) ; e l s e i f ( x > t. t a l l ) { r e t u r n f i n n ( x, t. h o y r e ) ; e l s e { r e t u r n t ; Hva gjør vi med like verdier? (ukeoppgave) 4 Antagelse: Alle verdiene i treet er forskjellige. NB! Det må være mulig å sammenligne verdiene i treet i Java, interface Comparable. Einar Broch Johnsen (Ifi, UiO) INF2220 H2007, forelesning 2 9 / 38 Einar Broch Johnsen (Ifi, UiO) INF2220 H2007, forelesning 2 0 / 38 Søking: Ikke-rekursiv metode Innsetting p u b l i c BinNode f i n n ( i n t x, BinNode t ) { BinNode n = t ; w h i l e ( n!= n u l l && n. t a l l!= x ) { i f ( x < n. t a l l ) { n = n. v e n s t r e ; e l s e { n = n. h o y r e ; r e t u r n n ; Ideen er enkel: Gå nedover i treet på samme måte som ved søking. Hvis tallet finnes i treet allerede gjøres ingenting. Hvis du kommer til en null-peker uten å ha funnet tallet: sett inn en ny node (med tallet) på dette stedet Her ser vi på det minst sannsynlige tilfellet sist. Eksempel: Hvor plasseres tallet 5? 3 Einar Broch Johnsen (Ifi, UiO) INF2220 H2007, forelesning 2 / 38 Einar Broch Johnsen (Ifi, UiO) INF2220 H2007, forelesning 2 2 / 38

4 Sletting Sletting av node med 2 barn Sletting er vanskeligere. Etter å ha funnet noden som skal fjernes, har vi flere mulige situasjoner. Noden er en bladnode: Kan fjernes direkte. Noden har bare ett barn: Foreldrenoden kan enkelt hoppe over den som skal fjernes. (Hvis elementet ikke finnes i treet trenger vi opplagt ikke å gjøre noe.) Noden har to barn: Erstatt verdien i noden med den minste verdien i høyre subtre. Slett noden som inneholder denne minste verdien i subtreet. Eksempel: Fjerning av tallet Eksempel: Fjerning av tallet 4. 4 Einar Broch Johnsen (Ifi, UiO) INF2220 H2007, forelesning 2 3 / 38 Einar Broch Johnsen (Ifi, UiO) INF2220 H2007, forelesning 2 4 / 38 Rekursiv metode for å fjerne et tall Gjennomsnitts-analyse p u b l i c BinNode f j e r n ( i n t x, BinNode t ) { i f ( t == n u l l ) { r e t u r n n u l l ; i f ( x < t. t a l l ) { t. v e n s t r e = f j e r n ( x, t. v e n s t r e ) ; e l s e i f ( x > t. t a l l ) { t. h o y r e = f j e r n ( x, t. h o y r e ) ; e l s e i f ( t. v e n s t r e!= n u l l && t. h o y r e!= n u l l ) { t. t a l l = f i n n M i n s t e ( t. h o y r e ) ; t. h o y r e = f j e r n ( t. t a l l, t. h oyre ) ; e l s e i f ( t. v e n s t r e!= n u l l ) { t = t. v e n s t r e ; e l s e { t = t. h o y r e ; r e t u r n t ; Intuitivt vil vi forvente at alle operasjonene vi utfører på et binært søketre vil ta O(log n) tid siden vi hele tiden grovt sett halverer størrelsen på treet vi jobber med. Det kan bevises at den gjennomsnittlige dybden til nodene i treet er O(log n) når alle innsettingsrekkefølger er like sannsynlige (se MAW kapittel 4.3.5). Einar Broch Johnsen (Ifi, UiO) INF2220 H2007, forelesning 2 5 / 38 Einar Broch Johnsen (Ifi, UiO) INF2220 H2007, forelesning 2 6 / 38

5 Eksempel: Ibsen Problem: Vi ønsker å analysere Henrik Ibsens skuespill. Hvilke ord har Ibsen brukt? Hvor mange forskjellige ord? Hvilke ord er mest brukt? De mest brukte ordene (fra UiB): A n t a l l % Kum d e t j e g og i e r a t du i k k e de en h a r som mig f o r t i l s å med han den på Spesielt interessert i: hvilke ord er mest brukt? Dette brukes til å finne ut hvem som har skrevet verk med ukjent forfatter. Einar Broch Johnsen (Ifi, UiO) INF2220 H2007, forelesning 2 7 / 38 Einar Broch Johnsen (Ifi, UiO) INF2220 H2007, forelesning 2 8 / 38 Vildanden Vi skal se på ett av Ibsens skuespill: VILDANDEN. SKUESPIL I FEM AKTER AF HENRIK IBSEN. København. 884 Implementasjon Alternativ : Hvilke ord har Ibsen brukt? Ide: Leser inn ordene fra fil og lagrer dem i et binært søketre. Like ord telles opp. PERSONERNE : G r o s s e r e r Werle, væ r k s e j e r o+s+v +. G r e g e r s Werle, hans s øn. Gamle E k d a l. H j a l m a r Ekdal, den g a m l e s s øn, f o t o g r a f. Gina Ekdal, Hjalmars hustru. Hedvig, d e r e s datter, 4 år. Fru Sørby, g r o s s e r e r e n s h u s b e s t y r e r i n d e. R e l l i n g, l æge. Molvik, forhenværende t e o l o g. Bogholder Gråberg. Pettersen, g r o s s e r e r e n s t j e n e r. L e j e t j e n e r J e n s e n. En b l e g f e d h e r r e. En tyndhå r e t h e r r e. En næ r s y n t h e r r e. Sex a n d r e h e r r e r, middagsgæ s t e r hos g r o s s e r e r e n. F l e r e l e j e t j e n e r e. Fø r s t e a k t f o r e g å r hos g r o s s e r e r Werle, de f i r e f ø l g e n d e a k t e r hos f o t o g r a f E k d a l.. skuespil vildanden 45 werle 45 FØRSTE AKT. I g r o s s e r e r W e r l e s hus. K o s t b a r t og bekvemt i n d r e t t e t a r b e j d s v æ r e l s e ; b o g s k a b e og s t o p p e d e mø b l e r ; s k r i v e b o r d med p a p i r e r og p r o t o k o l l e r midt på g u l v e t ; t æ n d t e l a m p e r med g r ønne s k ærme, s å l e d e s a t væ r e l s e t e r dæmpet b e l y s t. Åben f l ø j d ø r med f r a t r u k n e f o r h æng på bagvæggen. i 504 søn værksejer år Einar Broch Johnsen (Ifi, UiO) INF2220 H2007, forelesning 2 9 / 38 Einar Broch Johnsen (Ifi, UiO) INF2220 H2007, forelesning 2 20 / 38

6 Alternativ 2: Hvilke ord er mest brukt? Ide: Lager et nytt søketre sortert på antall ganger hvert ord er brukt! vildanden 45 i m p o r t e a s y I O. ; p u b l i c c l a s s I b s e n { p u b l i c s t a t i c v o i d main ( S t r i n g [ ] a r g s ) { S t r i n g o r d ; i n t a n t a l l O r d = 0 ; IbsenTre t r e = new IbsenTre ( ) ; FrekvensTre frektre = new FrekvensTre ( ) ; S t r i n g s e p = ". :, ;?! \ " \ n" ; I n i n n f i l = new I n ( a r g s [ 0 ] ) ; i n n f i l. s k i p S e p ( s e p ) ; hen 45 i 504 w h i l e (! i n n f i l. e n d O f F i l e ( ) ) { o r d = i n n f i l. inword ( s e p ). tolowercase ( ) ; t r e. s e t t I n n ( new I b s e n E l e m ( o r d ) ) ; a n t a l l O r d ++; i n n f i l. s k i p S e p ( s e p ) ; System. out. p r i n t l n ( " A n t a l l o r d : " + a n t a l l O r d ) ; System. out. p r i n t l n ( " U l i k e o r d : " + t r e. s i z e ( ) ) ; skuespil af 57 det 207 f r e k T r e. i n n s e t t i n g ( t r e. g e t R o t ( ) ) ; f r e k T r e. s k r i v I n n f i k s ( ) ; Antall ord: 3268 Antall forskjellige: 3547 Einar Broch Johnsen (Ifi, UiO) INF2220 H2007, forelesning 2 2 / 38 Einar Broch Johnsen (Ifi, UiO) INF2220 H2007, forelesning 2 22 / 38 Klassen BinNode Klassen IbsenElem Tar vare på ordene og teller opp antall forekomster: Vanlig node i binært søketre: c l a s s BinNode { Comparable e l e m e n t ; BinNode v e n s t r e ; BinNode h o y r e ; c l a s s Ibsen Elem implements Comparable { S t r i n g ord ; i n t a n t a l l ; I b s e n E l e m ( S t r i n g s ) { ord = s ; a n t a l l = ; BinNode ( Comparable x ) { e l e m e n t = x ; p u b l i c i n t compareto ( O b j e ct x ) { I b s e n E l e m e = ( I b s e n E l e m ) x ; r e t u r n ord. compareto ( e. ord ) ; p u b l i c S t r i n g t o S t r i n g ( ) { r e t u r n ( ord + " " + a n t a l l ) ; Einar Broch Johnsen (Ifi, UiO) INF2220 H2007, forelesning 2 23 / 38 Einar Broch Johnsen (Ifi, UiO) INF2220 H2007, forelesning 2 24 / 38

7 Klassen BinSokeTre Tre sortert på ord Generell klasse for binære søketrær der noe gjøres ved like elementer: void settinn(comparable x) Innsetting av element x i treet. void oppdater(binnode n, Comparable x) Kalles av settinn hvis x allerede finnes i treet (i node n). Default: Ingenting gjøres. int sammenlign(comparable n, Comparable n2) Kalles av settinn for å sammenligne elementet som skal settes inn med de som allerede finnes i treet. Default: n.compareto(n2). int size() Antall noder i treet. BinNode getrot() Peker til roten i treet. c l a s s I b s e n T r e extends BinSokeTre { void o p p d a t e r ( BinNode n, Comparable e ) { I b s e n E l e m i e = ( I b s e n E l e m ) n. e l e m e n t ; i e. a n t a l l ++; NB! Treet blir veldig skjevt, med 3388 noder i venstre subtre og bare 58 noder i høyre subtre. Hva er årsaken til dette? Einar Broch Johnsen (Ifi, UiO) INF2220 H2007, forelesning 2 25 / 38 Einar Broch Johnsen (Ifi, UiO) INF2220 H2007, forelesning 2 26 / 38 Tre sortert på frekvens : oppsummering c l a s s F r e k v e n s T r e extends BinSokeTre { i n t sammenlign ( Comparable c, Comparable c2 ) { I b s e n E l e m e = ( I b s e n E l e m ) c ; I b s e n E l e m e2 = ( I b s e n E l e m ) c2 ; r e t u r n e. a n t a l l e2. a n t a l l ; v o i d o p p d a t e r ( BinNode n, Comparable e ) { i f ( n. v e n s t r e == n u l l ) { n. v e n s t r e = new BinNode ( e ) ; e l s e { BinNode b = new BinNode ( e ) ; b. v e n s t r e = n. v e n s t r e ; n. v e n s t r e = b ; a n t a l l N o d e r ++; v o i d i n n s e t t i n g ( BinNode n ) { i f ( n!= n u l l ) { s e t t I n n ( n. e l e m e n t ) ; i n n s e t t i n g ( n. v e n s t r e ) ; i n n s e t t i n g ( n. h o y r e ) ; Hvordan blir balansen i forrige eksempel? Venstre: 3444 Høyre: 02 Hvis infiks/postfiks-innsetting fra det andre treet: 205/496! Treet blir veldig høyt! (2053) - skyldes alle like antall. Viktig å passe for skjeve trær... Einar Broch Johnsen (Ifi, UiO) INF2220 H2007, forelesning 2 27 / 38 Einar Broch Johnsen (Ifi, UiO) INF2220 H2007, forelesning 2 28 / 38

8 En ADT består av: et sett med objekter spesifikasjon av operasjoner på disse Eksempler: ADT: b i n æ r t sø k e t r e O p e r a s j o n e r : I n n s e t t i n g, søking, f j e r n i n g,... ADT: mengde O p e r a s j o n e r : union, s n i t t, element,... ADT: s t a k k O p e r a s j o n e r : push, pop, top,... Hvorfor bruke ADTer? ADTer skiller det som er viktig (funksjonaliteten) fra detaljene (den konkrete implementasjonen). Dermed kan vi: Gjenbruke ADTen i andre programmer. Enklere overbevise oss om at programmet er riktig. Forandre innmaten (kodingen) av ADTen uten å forandre resten av programmet fordi grensesnittet er det samme. Lage modulære programmer. I Java er det naturlig å spesifisere en ADT som et interface. Jfr. interface Comparable. Einar Broch Johnsen (Ifi, UiO) INF2220 H2007, forelesning 2 29 / 38 Einar Broch Johnsen (Ifi, UiO) INF2220 H2007, forelesning 2 30 / 38 Lister, stakker og køer Lister (kap. 3.2) Stakker (kap. 3.3) A, A 2, A 3,..., A n Køer (kap. 3.4) Inn Ut Inn 00 Ut Bak Foran 00 Einar Broch Johnsen (Ifi, UiO) INF2220 H2007, forelesning 2 3 / 38 Einar Broch Johnsen (Ifi, UiO) INF2220 H2007, forelesning 2 32 / 38

9 Stakker Vi bare kan sette inn og slette elementer fra en bestemt ende av listen. p u b l i c i n t e r f a c e S t a k k I n t e r f a c e { / Legge e t element på toppen av s t a k k e n / v o i d push ( Object x ) ; / F j e r n e e t element f r a toppen av s t a k k e n / v o i d pop ( ) ; / R e t u r n e r e e l e m e n t e t på toppen av s t a k k e n / Object top ( ) ; / Lege en ny s t a k k /tømme s t a k k e n / v o i d c r e a t e ( ) ; / S j e k k e om s t a k k e n e r tom / b o o l e a n isempty ( ) ; Ofte vil pop også returnere elementet som fjernes. En stakk er det samme som en LIFO-kø ( Last In First Out ). Einar Broch Johnsen (Ifi, UiO) INF2220 H2007, forelesning 2 33 / 38 Array-implementasjon av stakk A4 A3 A2 A S stakktopp Brukes ofte hvis antall elementer på stakken alltid er begrenset. Einar Broch Johnsen (Ifi, UiO) INF2220 H2007, forelesning 2 34 / 38 Pekerkjede-implementasjon av stakk p u b l i c v o i d push ( Object x ) { stakktopp++; S [ stakktopp ] = x ; S A4 A3 A2 A p u b l i c v o i d pop ( ) { stakktopp ; Innsetting og sletting vil da normalt skje på begynnelsen av listen: p u b l i c Object top ( ) { r e t u r n S [ s t a k k t o p p ] ; S X A4 A3 A2 A I tillegg: eventuell feilhåndtering. S A4 A3 A2 A Einar Broch Johnsen (Ifi, UiO) INF2220 H2007, forelesning 2 35 / 38 Einar Broch Johnsen (Ifi, UiO) INF2220 H2007, forelesning 2 36 / 38

10 Stakkoperasjonene - tidsforbruk Eksempel: Beregning av postfiks uttrykk Ved hjelp av en stakk er det lett å beregne et postfiks uttrykk: Uansett hvor mange elementer vi har på stakken, er vi garantert konstant tidsforbruk, det vil si O() for alle operasjonene. Dette gjelder uansett om implementasjonen bruker en array eller en pekerkjede. Bedre er det ikke mulig å få det, derfor er stakken en veldig populær ADT. Samtidig kan mange naturlige problemer løses ved hjelp av en stakk. Typisk bruksmønster er mange stakk-operasjoner, men få elementer på stakken om gangen. På mange maskiner kan disse oversettes til kun to-tre instruksjoner i maskinkode. For hvert symbol i input: Hvis symbolet er et tall, legges det på stakken. Hvis symbolet er en operator, popper vi to tall fra stakken, anvender operatoren på disse to tallene og dytter svaret tilbake på stakken. Hvis input var et ekte postfiks uttrykk, vil nå svaret ligge som det eneste elementet på stakken. Eksempel: * * Einar Broch Johnsen (Ifi, UiO) INF2220 H2007, forelesning 2 37 / 38 Einar Broch Johnsen (Ifi, UiO) INF2220 H2007, forelesning 2 38 / 38

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

Eksempel: Uttrykkstrær I uttrykkstrær inneholder bladnodene operander (konstanter, variable,... ), mens de interne nodene inneholder operatorer. TRÆR Generelle trær Dagens plan: Kort repetisjon Generelle trær Binærtrær Implementasjon Traversering Binære søketrær Definisjon Søking, innsetting og sletting Gjennomsnitts-analyse (!) Eksempel: Ibsens

Detaljer

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

Generelle trær BINÆRTRÆR. Binærtrær BINÆRTRÆR Kort repetisjon Generelle trær Binærtrær Implementasjon Traversering Binære søketrær Definisjon Søking, innsetting og sletting Gjennomsnitts-analyse Eksempel: Ibsens skuespill Generelle trær

Detaljer

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

INF110 Algoritmer og datastrukturer TRÆR. Vi skal i denne forelesningen se litt på ulike typer trær: TRÆR Vi skal i denne forelesningen se litt på ulike typer trær: Generelle trær (kap. 4.1) Binærtrær (kap. 4.2) Binære søketrær (kap. 4.3) Den siste typen trær vi skal behandle, B-trær (kap. 4.7) kommer

Detaljer

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

Repetisjon: Binære. Dagens plan: Rød-svarte trær. Oppgave (N + 1)! Repetisjon: Binære søketrær Dagens plan: Rød-svarte trær (kap. 12.2) B-trær (kap. 4.7) bstrakte datatyper (kap. 3.1) takker (kap. 3.3) For enhver node i et binært søketre gjelder: lle verdiene i venstre

Detaljer

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

... Når internminnet blir for lite. Dagens plan: Løsning: Utvidbar hashing. hash(x) katalog. O modellen er ikke lenger gyldig ved Dagens plan: Utvidbar hashing (kapittel 5.6) B-trær (kap. 4.7) Abstrakte datatyper (kap. 3.1) Stakker (kap. 3.3) Når internminnet blir for lite En lese-/skriveoperasjon på en harddisk (aksesstid 7-12 millisekunder)

Detaljer

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

INF2220: Forelesning 1. Praktisk informasjon Analyse av algoritmer (kapittel 2) (Binær)trær (kapittel ) INF2220: Forelesning 1 Praktisk informasjon Analyse av algoritmer (kapittel 2) (Binær)trær (kapittel 4.1-4.3 + 4.6) PRAKTISK INFORMASJON 2 Praktisk informasjon Kursansvarlige Ragnhild Kobro Runde (ragnhilk@ifi.uio.no)

Detaljer

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

INF Algoritmer og datastrukturer. Hva er INF2220? Algoritmer og datastrukturer Praktiske opplysninger INF2220 - Algoritmer og datastrukturer HØSTEN 2007 Institutt for informatikk, Universitetet i Oslo Tid og sted: Mandag kl. 12:15-14:00 Store auditorium, Informatikkbygningen Kursansvarlige

Detaljer

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

Dagens plan: INF2220 - Algoritmer og datastrukturer. Repetisjon: Binære søketrær. Repetisjon: Binære søketrær Dagens plan: INF2220 - lgoritmer og datastrukturer HØTEN 2007 Institutt for informatikk, Universitetet i Oslo (kap. 4.7) (kap. 12.2) Interface ollection og Iterator (kap. 3.3) et og maps (kap. 4.8) INF2220,

Detaljer

INF2220: Forelesning 1

INF2220: Forelesning 1 INF2220: Forelesning 1 Praktisk informasjon Analyse av algoritmer (kapittel 2) (Binær)trær (kapittel 4.1-4.3 + 4.6) Praktisk informasjon 2 Praktisk informasjon Kursansvarlige Ingrid Chieh Yu de Vibe (ingridcy@ifi.uio.no)

Detaljer

INF2220: Forelesning 1

INF2220: Forelesning 1 INF2220: Forelesning 1 Praktisk informasjon Analyse av algoritmer (kapittel 2) Rekursjon (kapittel 1.3) (Binær)trær (kapittel 4.1-4.3 + 4.6) Praktisk informasjon 2 Praktisk informasjon Kursansvarlige Ingrid

Detaljer

Definisjon av binært søketre

Definisjon av binært søketre Binære søketrær Definisjon av binært søketre For alle nodene i et binært søketre gjelder: Alle verdiene i nodens venstre subtre er mindre enn verdien i noden Alle verdiene i nodens høyre subtre er større

Detaljer

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

Hva er en algoritme? INF HØSTEN 2006 INF1020. Kursansvarlige Ragnar Normann E-post: Dagens tema va er en algoritme? Vanlig sammenligning: Oppskrift. nput lgoritme NF1020 - ØSTEN 2006 Kursansvarlige Ragnar Normann E-post: ragnarn@ifi.uio.no Output Knuth : tillegg til å være et endelig sett med regler

Detaljer

INF1010 Rekursive metoder, binære søketrær. Algoritmer: Mer om rekursive kall mellom objekter Ny datastruktur: binært tre

INF1010 Rekursive metoder, binære søketrær. Algoritmer: Mer om rekursive kall mellom objekter Ny datastruktur: binært tre INF1010 Rekursive metoder, binære søketrær Algoritmer: Mer om rekursive kall mellom objekter Ny datastruktur: binært tre public void skrivutmeg ( ) { System. out. println (navn + " er venn med " + minbestevennheter

Detaljer

INF2220: Forelesning 2

INF2220: Forelesning 2 INF2220: Forelesning 2 Mer om analyse av algoritmer Analyse av binære søketrær Balanserte søketrær Rød-svarte trær (kapittel12.2) B-trær (kapittel 4.7) ANALYSE AV ALGORITMER 2 Analyse av tidsforbruk Hvor

Detaljer

Inf 1020 Algoritmer og datastrukturer

Inf 1020 Algoritmer og datastrukturer Inf 1020 Algoritmer og datastrukturer Et av de mest sentrale grunnkursene i informatikkutdanningen... og et av de vanskeligste! De fleste 3000-kursene i informatikk bygger på Inf1020 Kurset hever programmering

Detaljer

INF Algoritmer og datastrukturer

INF Algoritmer og datastrukturer INF2220 - Algoritmer og datastrukturer HØSTEN 2009 Institutt for informatikk, Universitetet i Oslo INF2220, forelesning 5: Prioritetskø og Heap Bjarne Holen (Ifi, UiO) INF2220 H2009, forelesning 5 1 /

Detaljer

INF1010 Binære søketrær ++

INF1010 Binære søketrær ++ INF1010 Binære søketrær ++ Programeksempler med insetting, gjenfinning av noder i et binært søketre samt eksempler på hvordan lage en liste av et binærtre. Hva må du kunne om binære søketrær i INF1010

Detaljer

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

Binære søketrær. Et notat for INF1010 Stein Michael Storleer 16. mai 2013 Binære søketrær Et notat for INF Stein Michael Storleer 6. mai 3 Dette notatet er nyskrevet og inneholder sikkert feil. Disse vil bli fortløpende rettet og datoen over blir oppdatert samtidig. Hvis du

Detaljer

INF Algoritmer og datastrukturer

INF Algoritmer og datastrukturer INF2220 - Algoritmer og datastrukturer HØSTEN 2016 Ingrid Chieh Yu Institutt for informatikk, Universitetet i Oslo Forelesning 4: Prioritetskø og Heap Ingrid Chieh Yu (Ifi, UiO) INF2220 H2016, forelesning

Detaljer

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

INF2220: Forelesning 2. Balanserte søketrær Rød-svarte trær (kapittel12.2) B-trær (kapittel 4.7) INF2220: Forelesning 2 Balanserte søketrær Rød-svarte trær (kapittel12.2) B-trær (kapittel 4.7) REPETISJON: BINÆRE SØKETRÆR 2 Binære søketrær 8 4 12 2 7 9 15 6 11 13 16 For enhver node i et binært søketre

Detaljer

Eks 1: Binærtre Binærtretraversering Eks 2: Binærtre og stakk

Eks 1: Binærtre Binærtretraversering Eks 2: Binærtre og stakk Godkjent oblig 1? Les e-post til din UiO-adresse Svar på e-post fra lablærer Ingen godkjenning før avholdt møte med lablærer Godkjentlistene brukes ikke til å informere om status for obligene Ta vare på

Detaljer

INF2220: Forelesning 2

INF2220: Forelesning 2 INF2220: Forelesning 2 Balanserte søketrær Rød-svarte trær (kapittel12.2) B-trær (kapittel 4.7) REPETISJON: BINÆRE SØKETRÆR 2 Binære søketrær 8 4 12 2 7 9 15 6 11 13 16 For enhver node i et binært søketre

Detaljer

Definisjon: Et sortert tre

Definisjon: Et sortert tre Binære søketrær Definisjon: Et sortert tre For alle nodene i et binært søketre gjelder: Alle verdiene i nodens venstre subtre er mindre enn verdien i noden Alle verdiene i nodens høyre subtre er større

Detaljer

INF Algoritmer og datastrukturer

INF Algoritmer og datastrukturer INF2220 - Algoritmer og datastrukturer HØSTEN 2017 Ingrid Chieh Yu Institutt for informatikk, Universitetet i Oslo Forelesning 4: Prioritetskø og Heap Ingrid Chieh Yu (Ifi, UiO) INF2220 H2017, forelesning

Detaljer

INF Algoritmer og datastrukturer

INF Algoritmer og datastrukturer INF2220 - Algoritmer og datastrukturer HØSTEN 2015 Ingrid Chieh Yu Institutt for informatikk, Universitetet i Oslo Forelesning 4: Prioritetskø og Heap Ingrid Chieh Yu (Ifi, UiO) INF2220 H2015, forelesning

Detaljer

INF1010 LISTER. Listeelementer og listeoperasjoner. Foran. Bak

INF1010 LISTER. Listeelementer og listeoperasjoner. Foran. Bak LISTER Vanligste datastruktur Mange implementasjonsmåter (objektkjeder, array...) Operasjoner på listen definerer forskjellige typer lister (LIFO, FIFO,...) På norsk bruker vi vanligvis ordet «liste» for

Detaljer

INF Algoritmer og datastrukturer

INF Algoritmer og datastrukturer INF2220 - Algoritmer og datastrukturer HØSTEN 2015 Ingrid Chieh Yu Institutt for informatikk, Universitetet i Oslo Forelesning 4: Prioritetskø og Heap Ingrid Chieh Yu (Ifi, UiO) INF2220 H2015, forelesning

Detaljer

INF1010 siste begreper før oblig 2

INF1010 siste begreper før oblig 2 INF1010 siste begreper før oblig 2 Sammenligning. Mer lenkede lister. Forskjellige listeimplementasjoner. Binære trær. Bittelitt om grensesnitt (interface). Dagens forelesning Flere temaer på grunn av

Detaljer

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

Binære søketrær. En ordnet datastruktur med raske oppslag. Sigmund Hansen Binære søketrær En ordnet datastruktur med raske oppslag Sigmund Hansen Lister og trær Rekke (array): 1 2 3 4 Lenket liste (dobbelt-lenket): 1 2 3 4 Binært søketre: 3 1 4 2 Binære

Detaljer

Algoritmer og Datastrukturer

Algoritmer og Datastrukturer Eksamen i Algoritmer og Datastrukturer IAI 21899 Høgskolen i Østfold Avdeling for informatikk og automatisering Lørdag 15. desember 2001, kl. 09.00-14.00 Hjelpemidler: Alle trykte og skrevne hjelpemidler.

Detaljer

Dagens plan: INF Algoritmer og datastrukturer. Eksempel. Binære Relasjoner

Dagens plan: INF Algoritmer og datastrukturer. Eksempel. Binære Relasjoner Dagens plan: INF2220 - Algoritmer og datastrukturer HØSTEN 2009 Institutt for informatikk, Universitetet i Oslo INF2220, forelesning 10: Disjunkte Mengder Definisjon av binær relasjon Definisjon av ekvivalens

Detaljer

INF Algoritmer og datastrukturer

INF Algoritmer og datastrukturer INF2220 - Algoritmer og datastrukturer HØSTEN 2009 Institutt for informatikk, Universitetet i Oslo INF2220, forelesning 10: Disjunkte Mengder Bjarne Holen (Ifi, UiO) INF2220 H2009, forelesning 10 1 / 27

Detaljer

Dagens tema INF1010 INF1010 INF1010 INF1010

Dagens tema INF1010 INF1010 INF1010 INF1010 I eksemplene om lister og binære trær har vi hittil hatt pekerne inne i objektene i strukturen. ( Innbakt struktur ).Eksempel: Dagens tema Implementasjon av strukturer (lister, binære trær) class { ; ;

Detaljer

Liste som abstrakt konsept/datatype

Liste som abstrakt konsept/datatype Lister Liste som abstrakt konsept/datatype Listen er en lineær struktur (men kan allikevel implementeres ikke-lineært bak kulissene ) Hvert element har en forgjenger, unntatt første element i listen Hvert

Detaljer

Stack. En enkel, lineær datastruktur

Stack. En enkel, lineær datastruktur Stack En enkel, lineær datastruktur Hva er en stack? En datastruktur der vi til enhver tid kun har tilgang til elementet som ble lagt inn sist Et nytt element legges alltid på toppen av stakken Skal vi

Detaljer

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

EKSAMEN. Dato: 9. mai 2016 Eksamenstid: 09:00 13:00 EKSAMEN Emnekode: ITF20006 Emne: Algoritmer og datastrukturer Dato: 9. mai 2016 Eksamenstid: 09:00 13:00 Hjelpemidler: Alle trykte og skrevne Faglærer: Jan Høiberg Om eksamensoppgavene: Oppgavesettet består

Detaljer

Kap 9 Tre Sist oppdatert 15.03

Kap 9 Tre Sist oppdatert 15.03 Kap 9 Tre Sist oppdatert 15.03 Definere et tre som en datastruktur. Definere begreper knyttet til tre. Diskutere mulige implementasjoner av tre Analysere implementasjoner av tre som samlinger. Diskutere

Detaljer

EKSAMEN med løsningsforslag

EKSAMEN med løsningsforslag EKSAMEN med løsningsforslag Emnekode: ITF20006 Emne: Algoritmer og datastrukturer Dato: Eksamenstid: 20. mai 2009 kl 09.00 til kl 13.00 Hjelpemidler: 8 A4-sider (4 ark) med egne notater Kalkulator Faglærer:

Detaljer

Et eksempel: Åtterspillet

Et eksempel: Åtterspillet Trær Et eksempel: Åtterspillet To spillere som «trekker» annenhver gang I hvert trekk velges et av tallene 1, 2, 3, men ikke tallet som motspiller valgte i forrige trekk Valgte tall summeres fortløpende

Detaljer

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO Eksamen i UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet Eksamensdag: 13. desember 2011 Tid for eksamen: 14.30 18.30 Oppgavesettet er på 7 sider. Vedlegg: INF2220 lgoritmer og datastrukturer

Detaljer

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

Sist gang (1) IT1101 Informatikk basisfag. Sist gang (2) Oppgave: Lenket liste (fysisk) Hva menes med konseptuelt og fysisk i forb med datastrukturer? IT1101 Informatikk basisfag Plan de siste ukene: I dag: siste om datastruktuter (kap. 7) Mandag 17/11: dobbel forelesning om filstrukturer (kap. 8) Torsdag 20/11: øvingsforelesning med Inge Mandag 24/11:

Detaljer

Hva er en liste? Hvert element har en forgjenger, unntatt første element i listen. Hvert element har en etterfølger, unntatt siste element i listen

Hva er en liste? Hvert element har en forgjenger, unntatt første element i listen. Hvert element har en etterfølger, unntatt siste element i listen Lister Hva er en liste? Listen er en lineær datastruktur Hvert element har en forgjenger, unntatt første element i listen Hvert element har en etterfølger, unntatt siste element i listen I motsetning til

Detaljer

Løsningsforslag for Obligatorisk Oppgave 3. Algoritmer og Datastrukturer ITF20006

Løsningsforslag for Obligatorisk Oppgave 3. Algoritmer og Datastrukturer ITF20006 Løsningsforslag for Obligatorisk Oppgave 3 Algoritmer og Datastrukturer ITF20006 Lars Vidar Magnusson Frist 28.03.14 Den tredje obligatoriske oppgaven tar for seg forelesning 9 til 13, som dreier seg om

Detaljer

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

INF2220: Gruppe me 2. Mathias Lohne Høsten 2017 INF0: Gruppe me Mathias Lohne Høsten 0 1 Rød-svarte trær Vanlige binære søketrær blir fort veldig ubalanserte. røv å sett inn 1,,, 4, 5,, 7,... (i den rekkefølgen) i et binært søketre. Da vil vi i praksis

Detaljer

INF1020 Algoritmer og datastrukturer. Dagens plan

INF1020 Algoritmer og datastrukturer. Dagens plan Dagens plan Prioritetskø ADT Motivasjon Operasjoner Implementasjoner og tidsforbruk Heap-implementasjonen Strukturkravet Heap-ordningskravet Insert DeleteMin Tilleggsoperasjoner Build Heap Anvendelser

Detaljer

Hva er en kø? En lineær datastruktur der vi til enhver tid kun har tilgang til elementet som ble lagt inn først

Hva er en kø? En lineær datastruktur der vi til enhver tid kun har tilgang til elementet som ble lagt inn først Køer Hva er en kø? En lineær datastruktur der vi til enhver tid kun har tilgang til elementet som ble lagt inn først Et nytt element legges alltid til sist i køen Skal vi ta ut et element, tar vi alltid

Detaljer

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

Oppgavesettet består av 7 sider, inkludert denne forsiden. Kontroll& at oppgaven er komplett før du begynner å besvare spørsmålene. Høgskoleni Østfold EKSAMEN Emnekode: Emnenavn: ITF20006 Algoritmer og datastrukturer Dato: Eksamenstid: 9. mai 2016 9.00 13.00 Hjelpemidler: Faglærer: Alle trykte og skrevne Jan Høiberg Om eksamensoppgaven

Detaljer

Selv-balanserende søketrær

Selv-balanserende søketrær Selv-balanserende søketrær Georgy Maksimovich Adelson-Velsky Evgenii Mikhailovich Landis Søketrær og effektivitet O(log n) effektivitet av binære søketrær kan ikke garanteres Treet til venstre har høyde

Detaljer

Hva er en kø? En lineær datastruktur der vi til enhver tid kun har tilgang til elementet som ble lagt inn først

Hva er en kø? En lineær datastruktur der vi til enhver tid kun har tilgang til elementet som ble lagt inn først Køer Hva er en kø? En lineær datastruktur der vi til enhver tid kun har tilgang til elementet som ble lagt inn først Et nytt element legges alltid til sist i køen Skal vi ta ut et element, tar vi alltid

Detaljer

EKSAMEN. Algoritmer og datastrukturer

EKSAMEN. Algoritmer og datastrukturer EKSAMEN Emnekode: ITF20006 Emne: Algoritmer og datastrukturer Dato: Eksamenstid: 20. mai 2009 kl 09.00 til kl 13.00 Hjelpemidler: 8 A4-sider (4 ark) med egne notater Kalkulator Faglærer: Gunnar Misund

Detaljer

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

EKSAMEN Løsningsforslag. med forbehold om bugs :-) 1 EKSAMEN Løsningsforslag med forbehold om bugs :-) Emnekode: ITF20006 000 Dato: 20. mai 2011 Emne: Algoritmer og datastrukturer Eksamenstid: 09:00 til 13:00 Hjelpemidler: 8 A4-sider (4 ark) med egne notater

Detaljer

Algoritmer og Datastrukturer

Algoritmer og Datastrukturer Eksamen i Algoritmer og Datastrukturer IAI 20102 Høgskolen i Østfold Avdeling for informatikk og automatisering Lødag 5. juni 2004, kl. 09.00-13.00 LØSNINGSFORSLAG 1 Del 1 60% Oppgave 1.1-10% Forklar kort

Detaljer

Oppsummering. MAT1030 Diskret matematikk. Oppsummering. Oppsummering. Eksempel

Oppsummering. MAT1030 Diskret matematikk. Oppsummering. Oppsummering. Eksempel MAT1030 Diskret matematikk Forelesning 26: Trær Sist forelesning snakket vi i hovedsak om trær med rot, og om praktisk bruk av slike. rot Dag Normann Matematisk Institutt, Universitetet i Oslo barn barn

Detaljer

MAT1030 Diskret matematikk

MAT1030 Diskret matematikk MAT1030 Diskret matematikk Forelesning 26: Trær Dag Normann Matematisk Institutt, Universitetet i Oslo 28. april 2008 Oppsummering Sist forelesning snakket vi i hovedsak om trær med rot, og om praktisk

Detaljer

PG4200 Algoritmer og datastrukturer Forelesning 7

PG4200 Algoritmer og datastrukturer Forelesning 7 PG4200 Algoritmer og datastrukturer Forelesning 7 Lars Sydnes, NITH 19. mars 2014 I. TERMINOLOGI FOR TRÆR TRÆR Lister: Lineære Trær: Hierarkiske Modell / Språk: Bestanddeler: Noder, forbindelser. Forbindelse

Detaljer

København 20 Stockholm

København 20 Stockholm UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet Eksamen i IN 115 Algoritmer og datastrukturer Eksamensdag: 26. mai 2001 Tid for eksamen: 9.00 15.00 Oppgavesettet er på 7 sider. Vedlegg:

Detaljer

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet Eksamen i INF1020 Algoritmer og datastrukturer Eksamensdag: 15. desember 2004 Tid for eksamen: 14.30 17.30 Oppgavesettet er på 6 sider.

Detaljer

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO 1 UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet Eksamen i : IN 115 Eksamensdag : Lørdag 20 mai, 2000 Tid for eksamen : 09.00-15.00 Oppgavesettet er på : 5 sider Vedlegg : Intet. Tillatte

Detaljer

Algoritmer og Datastrukturer

Algoritmer og Datastrukturer Eksamen i Algoritmer og Datastrukturer Høgskolen i Østfold Avdeling for informatikk og automatisering Torsdag 10. desember 1998, kl. 09.00-15.00 Hjelpemidler: Alle trykte og skrevne hjelpemidler. Kalkulator.

Detaljer

Lars Vidar Magnusson

Lars Vidar Magnusson Binære Søketrær Lars Vidar Magnusson 14.2.2014 Kapittel 12 Binære Søketrær Søking Insetting Sletting Søketrær Søketrær er datastrukturer som støtter mange dynamiske sett operasjoner. Kan bli brukt både

Detaljer

Uke 5 Disjunkte mengder

Uke 5 Disjunkte mengder Uke 5 Disjunkte mengder MAW, kap.. 8 September 19, 2005 Page 1 Hittil Forutsetninger for og essensen i faget Metodekall, rekursjon, permutasjoner Analyse av algoritmer Introduksjon til ADT er Den første

Detaljer

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

Fra Kap.10 Binære søketre (BS-tre) Sist oppdatert 20.03.10 Definere en abstrakt datastruktur binært søketre. Vise hvordan binær søketre kan brukes Fra Kap.10 Binære søketre (BS-tre) Sist oppdatert 20.03.10 Definere en abstrakt datastruktur binært søketre. Vise hvordan binær søketre kan brukes til å løse problemer. Undersøke ulike implementasjoner

Detaljer

INF2220: Forelesning 3. Map og hashing Abstrakte datatyper (kapittel 3.1) Map (kapittel 4.8) Hashing (kapittel 5)

INF2220: Forelesning 3. Map og hashing Abstrakte datatyper (kapittel 3.1) Map (kapittel 4.8) Hashing (kapittel 5) INF2220: Forelesning 3 Map og hashing Abstrakte datatyper (kapittel 3.1) Map (kapittel 4.8) Hashing (kapittel 5) Map og hashing Ett minutt for deg selv: Hva vet du om maps/dictionarys og hashing fra tidligere?

Detaljer

INF2220: Forelesning 3

INF2220: Forelesning 3 INF2220: Forelesning 3 Map og hashing Abstrakte datatyper (kapittel 3.1) Map (kapittel 4.8) Hashing (kapittel 5) ABSTRAKTE DATATYPER 2 Abstrakte datatyper En ADT består av: Et sett med objekter. Spesifikasjon

Detaljer

Dagens tema. Sortering. Fortsettelse om programmering vha tråder.

Dagens tema. Sortering. Fortsettelse om programmering vha tråder. Dagens tema Sortering. Fortsettelse om programmering vha tråder. «orden» i dataene vi blir fort lei av å lete poleksempel internett «alt» er søking og sortering alternativer til sortering og søking binære

Detaljer

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

Sist forelesning snakket vi i hovedsak om trær med rot, og om praktisk bruk av slike. rot. barn Forelesning 26 Trær Dag Normann - 28. april 2008 Oppsummering Sist forelesning snakket vi i hovedsak om trær med rot, og om praktisk bruk av slike. rot barn barn barnebarn barnebarn barn blad Her er noen

Detaljer

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

Løsnings forslag i java In115, Våren 1996 Løsnings forslag i java In115, Våren 1996 Oppgave 1a For å kunne kjøre Warshall-algoritmen, må man ha grafen på nabomatriseform, altså en boolsk matrise B, slik at B[i][j]=true hvis det går en kant fra

Detaljer

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet Eksamen i : INF 110 Algoritmer og datastrukturer Eksamensdag : Lørdag 8. desember 2001 Tid for eksamen : 09.00-15.00 Oppgavesettet er på

Detaljer

Hva er en stack? En lineær datastruktur der vi til enhver tid kun har tilgang til elementet som ble lagt inn sist

Hva er en stack? En lineær datastruktur der vi til enhver tid kun har tilgang til elementet som ble lagt inn sist Stack Hva er en stack? En lineær datastruktur der vi til enhver tid kun har tilgang til elementet som ble lagt inn sist Et nytt element legges alltid på toppen av stakken Skal vi ta ut et element, tar

Detaljer

Obligatorisk oppgave 1 INF1020 h2005

Obligatorisk oppgave 1 INF1020 h2005 Obligatorisk oppgave 1 INF1020 h2005 Frist: fredag 7. oktober Oppgaven skal løses individuelt, og må være godkjent for å kunne gå opp til eksamen. Før innlevering må retningslinjene Krav til innleverte

Detaljer

Notater til INF2220 Eksamen

Notater til INF2220 Eksamen Notater til INF2220 Eksamen Lars Bjørlykke Kristiansen December 13, 2011 Stor O notasjon Funksjon Navn 1 Konstant log n Logaritmisk n Lineær n log n n 2 Kvadratisk n 3 Kubisk 2 n Eksponensiell n! Trær

Detaljer

Algoritmer og Datastrukturer

Algoritmer og Datastrukturer Eksamen i Algoritmer og Datastrukturer IAI 20102 Høgskolen i Østfold Avdeling for informatikk og automatisering Lødag 5. juni 2004, kl. 09.00-13.00 Hjelpemidler: Alle trykte og skrevne hjelpemidler. Kalkulator.

Detaljer

Grunnleggende Datastrukturer

Grunnleggende Datastrukturer Grunnleggende Datastrukturer Lars Vidar Magnusson 7.2.2014 Kapittel 10 Stakker og køer Lenkede lister Pekere og objekter Trerepresentasjoner Datastrukturer Vi er i gang med tredje del av kurset hvor vi

Detaljer

Hva er en kø? En lineær datastruktur der vi til enhver tid kun har tilgang til elementet som ble lagt inn først

Hva er en kø? En lineær datastruktur der vi til enhver tid kun har tilgang til elementet som ble lagt inn først Køer Hva er en kø? En lineær datastruktur der vi til enhver tid kun har tilgang til elementet som ble lagt inn først Et nytt element legges alltid til sist i køen Skal vi ta ut et element, tar vi alltid

Detaljer

Algoritmer og datastrukturer Eksamen

Algoritmer og datastrukturer Eksamen Eksamen - Algoritmer og datastrukturer - Høgskolen i Oslo og Akershus - 27.11.2012 Side 1 av 6 Algoritmer og datastrukturer Eksamen 27.11.2012 Eksamensoppgaver Råd og tips: Bruk ikke for lang tid på et

Detaljer

Dagens tema. Sortering. Fortsettelse om programmering vha tråder.

Dagens tema. Sortering. Fortsettelse om programmering vha tråder. Dagens tema Sortering. Fortsettelse om programmering vha tråder. «orden» i dataene vi blir fort lei av å lete poleksempel internett «alt» er søking og sortering alternativer til sortering og søking binære

Detaljer

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

EKSAMEN. Dato: 18. mai 2017 Eksamenstid: 09:00 13:00 EKSAMEN Emnekode: ITF20006 Emne: Algoritmer og datastrukturer Dato: 18. mai 2017 Eksamenstid: 09:00 13:00 Hjelpemidler: Alle trykte og skrevne Kalkulator Faglærer: Jan Høiberg Om eksamensoppgavene: Oppgavesettet

Detaljer

... Dagens plan. Prioritetskø ADT

... Dagens plan. Prioritetskø ADT Dagens plan Prioritetskø ADT Motivasjon Operasjoner Implementasjoner og tidsforbruk Heap-implementasjonen Strukturkravet Heap-ordningskravet Insert DeleteMin Tilleggsoperasjoner Build Heap Anvendelser

Detaljer

Oppgave 1 LØSNINGSFORSLAG. Eksamen i INF desember Betrakt følgende vektede, urettede graf:

Oppgave 1 LØSNINGSFORSLAG. Eksamen i INF desember Betrakt følgende vektede, urettede graf: INF100 Algoritmer og datastrukturer INF100 Algoritmer og datastrukturer Oppgave 1 LØSNINGSFORSLAG Betrakt følgende vektede, urettede graf: V 1 V Eksamen i INF100 1. desember 004 V V 4 V 4 V V Ragnar Normann

Detaljer

Maps og Hashing. INF Algoritmer og datastrukturer. Map - ADT. Map vs Array

Maps og Hashing. INF Algoritmer og datastrukturer. Map - ADT. Map vs Array Maps og Hashing INF0 - Algoritmer og datastrukturer HØSTEN 00 Institutt for informatikk, Universitetet i Oslo INF0, forelesning : Maps og Hashing Map - Abstrakt Data Type Hash-funksjoner hashcode Kollisjonshåndtering

Detaljer

INF Algoritmer og datastrukturer

INF Algoritmer og datastrukturer INF2220 - Algoritmer og datastrukturer HØSTEN 2009 Institutt for informatikk, Universitetet i Oslo INF2220, forelesning 3: Maps og Hashing Bjarne Holen (Ifi, UiO) INF2220 H2009, forelesning 3 1 / 25 Maps

Detaljer

En implementasjon av binærtre. Dagens tema. Klassestruktur hovedstruktur abstract class BTnode {}

En implementasjon av binærtre. Dagens tema. Klassestruktur hovedstruktur abstract class BTnode {} En implementasjon av binærtre Dagens tema Eksempel på binærtreimplementasjon Rekursjon: Tårnet i Hanoi Søking Lineær søking Klassestruktur hovedstruktur abstract class { class Person extends { class Binaertre

Detaljer

Korteste vei i en vektet graf uten negative kanter

Korteste vei i en vektet graf uten negative kanter Dagens plan: IN - Algoritmer og datastrukturer HØSTEN 7 Institutt for informatikk, Universitetet i Oslo IN, forelesning 7: Grafer II Korteste vei, en-til-alle, for: Vektet rettet graf uten negative kanter

Detaljer

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO Eksamen i UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet Eksamensdag: 14. desember 2015 Tid for eksamen: 14.30 18.30 Oppgavesettet er på 6 sider. Vedlegg: Tillatte hjelpemidler: INF2220

Detaljer

Eksamen i IN 110, 18. mai 1993 Side 2 Del 1 (15%) Vi skal se på prioritetskøer av heltall, der vi hele tiden er interessert i å få ut den minste verdi

Eksamen i IN 110, 18. mai 1993 Side 2 Del 1 (15%) Vi skal se på prioritetskøer av heltall, der vi hele tiden er interessert i å få ut den minste verdi UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet Eksamen i Eksamensdag: 18. mai 1993 Tid for eksamen: 9.00 15.00 Oppgavesettet er på 7 sider. Vedlegg: Tillatte hjelpemidler: IN 110 Algoritmer

Detaljer

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO Eksamen i UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet Eksamensdag: 15. desember 2010 Tid for eksamen: 14.30 18.30 Oppgavesettet er på 8 sider. Vedlegg: Tillatte hjelpemidler: INF2220

Detaljer

Hashing. INF Algoritmer og datastrukturer HASHING. Hashtabeller

Hashing. INF Algoritmer og datastrukturer HASHING. Hashtabeller Hashing INF2220 - Algoritmer og datastrukturer HØSTEN 200 Institutt for informatikk, Universitetet i Oslo INF2220, forelesning : Hashing Hashtabeller (kapittel.) Hash-funksjoner (kapittel.2) Kollisjonshåndtering

Detaljer

Disjunkte mengder ADT

Disjunkte mengder ADT Binære relasjoner A A = {(x, y) x, y A}: mengden av ordnede par over A. Disjunkte mengder ADT Weiss kap. 8.1 8.5 Løser ekvivalensproblemet Lett og rask implementasjon Vanskelig tidsforbrukanalyse Ark 1

Detaljer

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO Eksamen i UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet Eksamensdag: 14. desember 2012 Tid for eksamen: 14:30 18:30 Oppgavesettet er på 7 sider. Vedlegg: Tillatte hjelpemidler: INF2220

Detaljer

Oppgave 1 a. INF1020 Algoritmer og datastrukturer. Oppgave 1 b

Oppgave 1 a. INF1020 Algoritmer og datastrukturer. Oppgave 1 b Oppgave 1 1 a INF1020 Algoritmer og datastrukturer Forelesning 14: Gjennomgang av eksamen vår 2001 oppgave 1,2,4 Arild Waaler Institutt for informatikk, Universitetet i Oslo Oppgave 1 a Programmer en ikke-rekursiv

Detaljer

EKSAMENSOPPGAVE. NB! Det er ikke tillatt å levere inn kladd sammen med besvarelsen

EKSAMENSOPPGAVE. NB! Det er ikke tillatt å levere inn kladd sammen med besvarelsen Fakultet for naturvitenskap og teknologi EKSAMENSOPPGAVE Eksamen i: INF-1101 Datastrukturer og algoritmer Dato: 18.05.2016 Klokkeslett: 09:00 13:00 Sted: Teorifagbygget, hus 3, 3.218 Tillatte hjelpemidler:

Detaljer

Løsningsforslag. Oppgave 1.1. Oppgave 1.2

Løsningsforslag. Oppgave 1.1. Oppgave 1.2 Løsningsforslag Oppgave 1.1 7 4 10 2 5 9 12 1 3 6 8 11 14 13 Oppgave 1.2 1 2 3 4 5 6 7 8 9 10 11 12 13 14 1 Oppgave 1.3 Rekursiv løsning: public Node settinn(person ny, Node rot) if (rot == null) return

Detaljer

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

E K S A M E N. Algoritmiske metoder I. EKSAMENSDATO: 11. desember HINDA / 00HINDB / 00HINEA ( 2DA / 2DB / 2EA ) TID: Høgskolen i Gjøvik Avdeling for Teknologi E K S A M E N FAGNAVN: FAGNUMMER: Algoritmiske metoder I L 189 A EKSAMENSDATO: 11. desember 2001 KLASSE: 00HINDA / 00HINDB / 00HINEA ( 2DA / 2DB / 2EA ) TID: 09.00-14.00

Detaljer

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

Løsnings forslag i java In115, Våren 1998 Løsnings forslag i java In115, Våren 1998 Oppgave 1 // Inne i en eller annen klasse private char S[]; private int pardybde; private int n; public void lagalle(int i) if (i==n) bruks(); else /* Sjekker

Detaljer

2 Om statiske variable/konstanter og statiske metoder.

2 Om statiske variable/konstanter og statiske metoder. Litt om datastrukturer i Java Av Stein Gjessing, Institutt for informatikk, Universitetet i Oslo 1 Innledning Dette notatet beskriver noe av det som foregår i primærlageret når et Javaprogram utføres.

Detaljer

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

Binær heap. En heap er et komplett binært tre: Heap Binær heap En heap er et komplett binært tre: Alle nivåene i treet, unntatt (muligens) det nederste, er alltid helt fylt opp med noder Alle noder på nederste nivå ligger så langt til venstre som mulig

Detaljer

Maps og Hashing. INF Algoritmer og datastrukturer. Map - ADT. Map vs Array

Maps og Hashing. INF Algoritmer og datastrukturer. Map - ADT. Map vs Array Maps og Hashing INF0 - Algoritmer og datastrukturer HØSTEN 00 Institutt for informatikk, Universitetet i Oslo INF0, forelesning : Maps og Hashing Map - Abstrakt Data Type (kapittel.) Hash-funksjoner (kapittel..)

Detaljer

Vanlige datastrukturer. I dette lysarksettet

Vanlige datastrukturer. I dette lysarksettet Vanlige datastrukturer I dette lysarksettet datastrukturer Datastrukturer i Med datastruktur mener vi måten objektene i et program er strukturert på. Særlig blir det aktuelt å snakke om struktur hvis vi

Detaljer

Generelle Tips. INF Algoritmer og datastrukturer. Åpen og Lukket Hashing. Hashfunksjoner. Du blir bedømt etter hva du viser at du kan

Generelle Tips. INF Algoritmer og datastrukturer. Åpen og Lukket Hashing. Hashfunksjoner. Du blir bedømt etter hva du viser at du kan Generelle Tips INF2220 - lgoritmer og datastrukturer HØSTEN 2009 Institutt for informatikk, Universitetet i Oslo Du blir bedømt etter hva du viser at du kan Du må begrunne svar Du må ikke skrive av bøker

Detaljer

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

Heap* En heap er et komplett binært tre: En heap er også et monotont binært tre: Heap Heap* En heap er et komplett binært tre: Alle nivåene i treet, unntatt (muligens) det nederste, er alltid helt fylt opp med noder Alle noder på nederste nivå ligger til venstre En heap er også et

Detaljer