Finne et personobjekt med et gitt navn. Sette personobjekt inn i treet

Størrelse: px
Begynne med side:

Download "Finne et personobjekt med et gitt navn. Sette personobjekt inn i treet"

Transkript

1 INF1010 e-ostadresser Ikke-faglige sørsmål til Faglige sørsmål til blogen eller til brukernavn navn kristoeb Kristoffer Egil Bonarjee josek Jose Louis Rojas stianf Stian Kjetil Friberg bendiko Bendik Rønning Ostad bmmender Bedeho Mender eseak Esen Angell Kristiansen richar Richard Rørmark daghf Dag Haavi Finstad larsstor Lars Storjord fredva Fredrik Valdmanis Sørsmål om ensum, forelesninger, øvelser og hold i ogaver kan sendes til lenumslærere og forelesere: brukernavn navn steing Stein Gjessing michael Stein Michael Storleer eseak Esen Angell Kristiansen jaasen Jon Petter Åsen Om ekervariable Forskjellen mellom variable og ekere, begreer rimitive tyes reference tyes variabel ekere ekervariable Veldig viktig å vite om det er en variabel eller en eker. Siden en eker også forandrer verdi (hva den eker å) er den variabel, og kalles derfor ofte variabel. Vi kan ikke se av navnet om det er en variabel eller en eker. I eksemelet er.rang en variabel (av tye int), mens.nesteperson er en eker (av tye Person). Dagens forelesning Pekerkjedelister Om ekervariable Innsetting Traversering av hele lista Strenger Sammenligne strenger String.comareToIgnoreCase(String s) Binære trær Litt om effektivitet Liste versus binærtre Et binærtreeksemel Binærtreoerasjoner Fe et ersonobjekt med et gitt navn Om ekervariable Forskjellen mellom variable og ekere En variabel (av 8 forskjellige tyer) har en verdi. De vanliste tyene er: int boolean double char En eker eholder en adresse, eller referanse til et objekt. Variablene med verdier ligger evt. i objektet, og kan bare leses og forandres indirekte. int 0 int i = 0; <fig venstre> i = 561; int 561 Person = new Person(); Person = null; Person Person P = ; Person Person «settes til å eke å det samme som (eker å)» i i

2 Innsetting Innsetting først 1 void settinnpersonforst( Person ) { 2 \\ Hvis l i s t a er tom, sett objektet i f ( == null ) = ; 4 else { 5 \\ minst et objekt i lista 6. nesteperson = ; = 8 } 9 } Innsetting Et listeobjekt med eker til siste element i lista Person Person Person Person Person nesteperson String navn nesteperson String nesteperson String nesteperson String nesteperson String Jonathan Susanne Imran Nikita Elisabeth navn navn navn navn null Person Person sisteperson Et objekt av klassen Personer Innsetting Innsetting sist (uten «sisteeker») 1 void settinnpersonsist( Person ) { 2 \\ Hvis l i s t a er tom, sett objektet i f ( == null ) = ; 4 else { 5 \\ fe siste element i lista 6 Person = ; while (. nesteperson! = null ) 8 =. nesteperson ; 9 \\ her er. nesteperson==null, altså er siste 10. nesteperson = 11 } 12 } Antar at Person-objektene i lista har et attributtint rang som objektene er sortert etter i stigende rekkefølge. Elementet som skal må da ikke havne så langt ut i lista at det får et element med høyere verdi å rang før seg selv. Vi leter oss fram til en tom nesteeker, eller til nesteperson eker å et objekt med høyere rang. Dette synes ganske enkelt, men vi vil se at når metoden skal virke både for en tom og en ikke-tom liste og for en liste som bare har et objekt, blir det nokså omstendelig. == null objektet skal først objektet skal sist objektet skal hverken først eller sist

3 1 void settinnpersonetterrang( Person ) { 2 Person = ; Boolean fortsett = true ; 4. nesteperson = null ; // hvorfor? 5 while (!= null && fortsett ) 6 if (. nesteperson!= null &&. nesteperson. rang <. rang ) =. nesteperson; 8 else fortsett = false ; 9 // == null eller. nesteperson. rang >=.rang 10 if ( == null ) { 11 // lista var tom 12 = ; 1 } 14 else if ( == ) { 15 if (.rang <. rang ) { 16. nesteperson =. nesteperson; 1 = ; 18 } 19 else { 20. nesteperson = ; 21 = ; 22 } 2 } 24 else { 25 // skal mellom og. nesteperson 26. nesteperson =. nesteperson; 2. nesteperson = ; 28 } 29 } = ; I settinnpersonetterrang linje 16: nestePerson =.nesteperson; void settinnpersonetterrang( Person ) { 2 Person = ; Boolean fortsett = true ; 4. nesteperson = null ; // hvorfor? 5 while (!= null && fortsett ) 6 if (. nesteperson!= null &&. nesteperson. rang <. rang ) =. nesteperson; 8 else fortsett = false ; 9 // == null eller. nesteperson. rang >=.rang 10 if ( == null ) { 11 // lista var tom 12 = ; 1 } 14 else if ( == ) { 15 if (.rang <. rang ) { 16. nesteperson =. nesteperson; 1. neste = ; 18 } 19 else { 20. nesteperson = ; 21 = ; 22 } 2 } 24 else { 25 // skal mellom og. nesteperson 26. nesteperson =. nesteperson; 2. nesteperson = ; 28 } 29 }

4 I settinnpersonetterrang linje 16: nestePerson =.nesteperson; Legg merke til at følgende fungerer korrekt når objektet som eker å skal mellom objektet som eker å og objektet som.neste eker å, selv når.neste er null ( eker å siste objekt): 1. neste =. neste ; 2. neste = ; Da kan vi dele roblemet i tilfeller etter hvor objektet skal : lista er tom først etter objektet (evt. null) eker å Dette kan vi bruke til å lage en enklere metode. (Ogave som gjennomgås mandag) nestePerson = ; Traversering av hele lista Eksemel: skrive ut alle ersonene i lista 1 // I klassen Personer : 2 void skrivalle ( ) { 4 Person = ; 5 while (! = null ) { 6. skriv ( ) ; =. nesteperson ; 8 } 9 } // I klassen Person : 12 void skriv ( ) { 1 System. out. rintln (... ) ; 14 }

5 Traversering av hele lista Fjerne erson med gitt rang (en instans eller ingen) 1 Person fjern ( int rang) { 2 Person = ; Person forrige = null ; 4 while (!= null &&. rang!= rang { 5 forrige = ; 6 =. nesteperson; } 8 // er ersonen som skal fjernes, 9 // forrige er ersonen FØR denne i lis te n 10 if (!= null ) { 11 i f ( == ) { 12 // Sesialtilfelle : som skal fjernes står først 1 =. nesteperson; 14 } else { 15 forrige. nesteperson =. nesteperson; 16 } 1 } 18 return ; 19 } Sammenligne strenger String.comareToIgnoreCase(String s) Gitt to tekststrenger: Stringa,b; > 0 hvisa>b a.comaretoignorecase(b) = 0 hvisa=b < 0 hvisb>a Husketriks: vi tenker oss at vi giraostiv, ogbnegativ «alfabetisk vekt». Så legger vi de to vektene sammen. Er summen null, eraogblike. Er summen negativ erb alfabetisk større enna. Er summen ositiv, er a størst. Pluss kommer først (a), så minus (b). Kortere: +.comaretoignorecase( ) Sammenligne strenger String.comareToIgnoreCase(String s) ublic int comaretoignorecase(string str) Comares two strings lexicograhically, ignoring case differences. This method returns an integer whose sign is that of calling comareto with normalized versions of the strings where case differences have been eliminated by calling Character.toLowerCase(Character.toUerCase(character)) on each character. Parameters str - the String to be comared. Returns: a negative integer, zero, or a ositive integer as the the secified String is greater than, equal to, or less than this String, ignoring case considerations. Ved å sammenligne strenger, kan vi ordne dem leksiografisk (alfabetisk som i en ordbok). Litt om effektivitet I små rogrammer betyr det ikke noe om vi gjør oerasjoner å en ineffektiv måte. Datamaskinen er så rask at det som skal gjøres skjer fort nok. Med mange objekter i datastrukturen, eller med unødvendige reetisjoner av oerasjoner, kan rogrammet fort bli så tidkrevende at det er ubrukelig. Har vi mange elementer i lista og vi forventer ofte å måtte foreta oerajoner som å fe et bestemt element, eller å sortere lista, fes det en langt bedre ekerkjedestruktur med hensyn til effektivitet. Men først noen ord om effektivitet.

6 Litt om effektivitet Eksemel å liste med mange objekter I folkeregisteret er det registrert nesten 5 millioner ersoner. Hvis disse ligger i en liste slik at vi hver gang vi skal fe en erson må starte å begynnelsen av lista, kan vi forvente å måtte gjøre ca 2,5 millioner sammenligninger før vi fer ersonen vi er ute etter. Hvis det tar ett tusendels sekund å gjøre en sammenligning, kan vi forvente at det tar ca , 001s= 2.500s eller ca 2.500s/60=40 minutter å fe en bestemt erson. Litt om effektivitet Når datamengden blir «stor», eller vi må gjøre en oerajon «mange ganger», må vi også tenke å om rogrammet vi lager er effektivt, dvs. ikke tar «for lang» tid. Hva som er store datamengder, mange ganger og lang tid er tema for andre emner enn INF1010, men enkle resonnementer og beregninger rundt et rograms effektivitet er det greit å kunne gjøre. Vi bør også kjenne til at datastrukturer og algoritmers kvalitet i stor grad avhenger av effektivitet (= tidsforbruk). Litt om effektivitet Hvor lang tid vil det ta å sortere lista ved å fe det minste elementet med metoden over, ta det ut å sette det i en ny sortert liste, når vi bare ser å tiden det tar å fe objektene? Svar: Ca 95 år! Fordelen med ekerkjedelister, er at vi ikke trenger å vite noe om hvor mange elementer som skal i lista. Ulemen er at ekeradministrasjon lett fører til feil, og at store datamengder (mange elementer) blir ineffektivt. Liste versus binærtre I folkeregistereksemelet over så vi at en enkeltkjedet liste med en førsteeker er en lite egnet struktur når vi ofte skal fe objekter med et bestemt fødselsnummer. Det fes derimot en ekerstruktur som er like dynamisk som lista, men som gjør at vi kan fe et bestemt objekt mange ganger mer effektivt. Denne datastrukturen er et binært søketre, eller et binærtre.

7 Liste versus binærtre Hvordan ideen kan ha blitt til Liste versus binærtre Pekerstrukturen i et binærtre Det som gjenstår, er å organisere dataene slik at vi fer søkte element ved å undersøke maksimum 2 elementer. Siden halvarten av objektene ligger i nivå 1-22, må vi i snitt regne med å lete oss fram til nivå 22. Hvis letetiden er den samme som for lista, fer vi et element i løet av 22 0, 001s = 0, 022s omtrent to hundredels sekund. Jørgen Gunnar Stian Eirik Jan Pål Torjus Christian Elisabeth Henrik Jim Nikita Siv Susanne Vivi Andreas Darjan Gry Helge Imran Nguyen Phili Simen Tor Liste versus binærtre I hvert nivå i et binært søketre, er det lass til dobbelt så mange elementer som nivået over. Når vi leter går vi bare fra et nivå til det neste i ett skritt (tilsvarer =.neste for lister). På første nivå er det lass til ett element, å neste 2, det neste 4, 8, På nivå 2, er det lass til elementer. I nivåene over, er det lass til elementer, tilsammen over 8 millioner elementer, hvilket er nok for vårt folkeregister Et binærtreeksemel Vi skriver om class Person slik at den nå har to ersonekere: 1 class Person { 2 String navn; Person venstre, // Peker t i l ers. alfabetisk før denne 4 høyre ; // Peker t i l ers. alfabetisk etter denne 5 } tye: String navn: navn "Sokrates" Sokrates tye: Person tye: Person venstre høyre Forenklet objekt Et objekt av klassen Person

8 Et binærtreeksemel Ideen er å ordne objektene slik at alle ersonene som vi fer ved å følge høyre-ekeren (høyre subtre) er alfabetisk større enn dette objektets navn. Tilsvarende skal alle ersonobjekter vi kan fe ved å følge venstre-ekeren (venstre subtre) være alfabetisk mindre enn dette objektets navn. Merk at siden et objekt der begge ekervariablene er null også er et binært tre (en «sire uten grener»), eker alle ekervariablene å trær av mindre og mindre størrelse etter som vi følger ekerne fra «rota» mot «bladene». Et binærtreeksemel Andreas Christian Darjan Eirik Elisabeth Gry Gunnar Helge Henrik Imran Jan Jim Jørgen Nguyen Nikita Phili Pål Simen Siv Stian Susanne Tor Torjus Vivi Fra sortert liste (øverst) til binært søketre Jørgen Gunnar Stian Eirik Jan Pål Torjus Christian Elisabeth Henrik Jim Nikita Siv Susanne Vivi Andreas Darjan Gry Helge Imran Nguyen Phili Simen Tor Et binærtreeksemel Jasmina Imran Nikita Objekter som har navn som kommer alfabetisk foran (mindre enn) "Imran" Objekter hvor navn er større enn "Nikita" Når vi skal legge til et ersonobjekt, sjekker vi først navnet til førsteperson. Her har vi fire muligheter: 1. førsteperson == null, objektet med avnet er første objekt. 2. navnet er likt, ingenting legges til (i dette eksemlet). avnet er større og ersonen skal legges til (treet) høyre 4. avnet er mindre og ersonen skal legges til (treet) venstre

9 Metoden vi bruker for å legge til et objekt har en ersoneker som arameter. Personen som ersonekeren eker å skal settes i treet. Metoden er definert i en omgivelse der Person ersontreet eker å ersonobjektet som er roten i hele treet. Metoden kalles med kallet settinnitre(nyerson); I skissen å forrige lysark er vi framme når == null; Vi har da ikke lenger tilgang til objektet som vi skal hekte det nye objektet til. Introduserer en hjeleeker som «henger ett tr etter»: 1 void settinnitre ( Person ) { 2 // Objektet skal s e t t e s i ersontreet i f ( ersontreet == null ) ersontreet = ; 4 else { 5 int smnlgn = 4; 6 Person siste, eker = treet ; while ( eker! = null ) { 8 siste = eker; 9 smnlgn = eker.navn.comaretoignorecase (.navn ) ; 10 if ( smnlgn < 0 ) eker = eker.høyre ; 11 else if ( smnlgn > 0 ) eker = eker. venstre ; 12 } 1 if ( smnlgn < 0 ) siste.høyre = ; 14 else i f ( smnlgn > 0 ) siste. venstre = ; 15 } 16 } Hvordan vi sammenligner tekststrenger er ikke vesentlig her, men i eksemlet har jeg brukt comaretoignorecase (fra String-klassen) som returnerer et heltall (se ovenfor). Vi lager en skisse: 1 void settinnitre ( Person ) { 2 // Objektet ekt å av skal i ersontreet i f ( ersontreet == null ) ersontreet = ; 4 else { 5 Person = treet ; 6 while (! = null ) { int smnlgn =.navn.comaretoignorecase (.navn ) ; 8 if ( smnlgn < 0 ) =.høyre ; 9 else if ( smnlgn > 0 ) =. venstre ; 10 } 11 i f ( smnlgn < 0 ) <sett ersonen i treet ekt å av høy 12 else i f ( smnlgn > 0 ) <sett ersonen i treet ekt å a 1 } 14 } Metoden Forelesning er korrekt i INF1010 hvis 20. januar treet 2009 er tomt. Hvis treet ikke michael@ifi.uio.no er tomt (tre!= null) vandrer vi nedover (sic!) treet til vi Henrik Andreas Gunnar Elisabeth Helge Christian Gry Darjan Eirik Henrik Jørgen Andreas Susanne Gunnar Nikita Jim Vivi Pål Elisabeth Christian Jørgen Darjan Eirik Jan Torjus Tor Gry Simen Stian Imran Nguyen Helge Phili Siv Imran Jan Jørgen Jim Susanne Nguyen Nikita Pål Phili Tor Simen Torjus Stian Vivi Slik blir treet hvis navnene kommer slik lista over er (fra øverst og nedover) Siv

10 Andreas Christian Darjan Eirik Elisabeth Slik blir treet hvis erson objektene settes i alfabetisk rekkefølge. Gry Gunnar Helge Henrik Resten i stigende orden Fe et ersonobjekt med et gitt navn blir nokså likt det å sette en erson. Metoden skal returnere med en eker til et ersonobjekt i treet som har likt navn med arameteren. Her lar vi treet vi skal lete i også være arameter. Når vi skal lete i hele treet, bruker vi kallet fitre(ersontreet, navnet). Sette et ersonobjekt i treet 1 \ scritsize 2 ublic void settinnitreet ( Person ) { if ( rotperson == null ) rotperson = ; 4 else settinn (, rotperson ) ; 5 } 6 rivate void settinn ( Person, Person tre ) { 8 int smnlgn = tre. sammenlign( ) ; 9 if ( smnlgn < 0 ) { 10 if ( tre.høyre == null ) tre.høyre = ; 11 else settinn (, tre.høyre ) ; 12 } 1 else if ( smnlgn > 0 ) { 14 if ( tre. foran == null ) tre. venstre = ; 15 else settinn (, tre. venstre ) ; 16 } 1 } Fe et ersonobjekt med et gitt navn 1 Person fitre ( Person ersontre, String navn) { 2 Person funnetperson = null ; Person = ersontre; int smnlgn = 5621; 4 while (! = null ) { 5 smnlgn =.navn.comaretoignorecase (navn ) ; 6 if ( smnlgn == 0 ) { // funnet funnetperson = ; 8 = null ; // for å avslutte whileløkka 9 } 10 else if ( smnlgn < 0 ) =.høyre ; 11 else if ( smnlgn > 0 ) =. venstre ; 12 } 1 return funnetperson ; 14 }

INF1010 e-postadresser

INF1010 e-postadresser INF1010 e-postadresser Ikke-faglige spørsmål til studieinfo@ifi.uio.no. Faglige spørsmål til blogen eller til @ifi.uio.no: brukernavn kristoeb josek stianf bendiko bmmender espeak richar daghf

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

Hvorfor sortering og søking? Søking og sortering. Binære søketrær. Ordnet innsetting forbereder for mer effektiv søking og sortering INF1010 INF1010

Hvorfor sortering og søking? Søking og sortering. Binære søketrær. Ordnet innsetting forbereder for mer effektiv søking og sortering INF1010 INF1010 Hvorfor sortering og søking? Man bør ha orden i dataene umulig å leve uten i informasjonssamfunnet vi blir fort lei av å lete poleksempel internett alt er søking og sortering alternativer til sortering

Detaljer

INF1010. Om pensum INF1010 INF1010 INF1010 INF1010. Det vesentlige er å forstå og kunne lage programmer ved hjelp av eksemplene i bøkene.

INF1010. Om pensum INF1010 INF1010 INF1010 INF1010. Det vesentlige er å forstå og kunne lage programmer ved hjelp av eksemplene i bøkene. Om pensum Dagens forelesning handler om (de to datastrukturene) lister og binære trær. Etter forelesningen skal studentene kjenne til datastrukturene lister og binære trær og kunne lage programmer som

Detaljer

alternativer til sortering og søking binære trær søketrær Ikke-rekursiv algoritme som løser Hanois tårn med n plater

alternativer til sortering og søking binære trær søketrær Ikke-rekursiv algoritme som løser Hanois tårn med n plater Dagens temaer Sortering: 4 metoder Hvorfor sortering (og søking) er viktig i programmering Sortering når objektene som skal sorteres er i et array 1. Sorterering ved bruk av binærtre som «mellomlager»

Detaljer

Dagens temaer. Sortering: 4 metoder Søking: binærsøk Rekursjon: Hanois tårn

Dagens temaer. Sortering: 4 metoder Søking: binærsøk Rekursjon: Hanois tårn Dagens temaer Sortering: 4 metoder Hvorfor sortering (og søking) er viktig i programmering Sortering når objektene som skal sorteres er i et array 1. Sorterering ved bruk av binærtre som «mellomlager»

Detaljer

Dagens forelesning. INF1010 Datastrukturer Lister og køer Pekerkjedelister Øvelser. Innhold i dette lysarksettet

Dagens forelesning. INF1010 Datastrukturer Lister og køer Pekerkjedelister Øvelser. Innhold i dette lysarksettet Innhold i dette lysarksettet Dagens forelesning INF1010 Innhold i dette lysarksettet Hvordan jobbe med INF1010 Datastrukturer Algoritmer og datastrukturer Grafer (lister og trær) Objektorientert programmering

Detaljer

Lenkelister. Lister og køer.

Lenkelister. Lister og køer. Lenkelister. Lister og køer. INF1010 Stein Michael Storleer 27. januar 2011 Dagens forelesning Lenkede lister Lenkede lister Eksempel på en lenket liste: personliste Operasjoner på lenkede lister (enkeltlenket)

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

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

Velkommen til INF1010

Velkommen til INF1010 Velkommen til INF1010 Dagens forelesning Hvordan jobbe med INF1010 Pensum Datastrukturer Grafer (lister og trær) Objektorientert programmering Lister og køer Hva er en liste? FIFO- og LIFO-lister Lenkede

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

Gjøre noe i hele treet = kalle på samme metode i alle objekten. Java datastruktur Klassestruktur

Gjøre noe i hele treet = kalle på samme metode i alle objekten. Java datastruktur Klassestruktur 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

Studieaktiviteter i INF1010

Studieaktiviteter i INF1010 Innhold i dette lysarksettet Dagens forelesning INF1010 Innhold i dette lysarksettet Hvordan jobbe med INF1010 Datastrukturer Algoritmer og datastrukturer Grafer (lister og trær) Objektorientert programmering

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

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

Versjon (vil bli endret).

Versjon (vil bli endret). Versjon 24.01.2012 (vil bli endret). Dette dokumentet bør leses før forelesningen 26. januar 2012 og er en del av «pensum». De er også laget med tanke på repetisjon. (Lysarkene som blir brukt egner seg

Detaljer

Operasjoner på lenkede lister (enkeltlenket) Eksempel på en lenket liste: personliste. INF januar 2010 (uke 3) 2

Operasjoner på lenkede lister (enkeltlenket) Eksempel på en lenket liste: personliste. INF januar 2010 (uke 3) 2 Velkommen til INF1010 Studieaktiviteter i INF1010 Programmering (oppgaveløsning) alene/kollokvier programmeringslab (plenums)øvelser forelesninger gruppe som repeterer stoff fra forelesning, og øvelser

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

Lenkelister. Lister og køer. Kopi av utvalgte sider fra forelesningen.

Lenkelister. Lister og køer. Kopi av utvalgte sider fra forelesningen. Lenkelister. Lister og køer. Kopi av utvalgte sider fra forelesningen. "Taher" type: String : type: :... type: : inf1010student null michael@ifi.uio.no INF1010 26. januar 2012 (uke 4) 2 class Eks01 { public

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

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

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

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

Signaturer. Dagens tema. En vanlig feil int-funksjon. Dette kan noen ganger gi rare feilmeldinger: INF1070 INF1070 INF1070 INF1070

Signaturer. Dagens tema. En vanlig feil int-funksjon. Dette kan noen ganger gi rare feilmeldinger: INF1070 INF1070 INF1070 INF1070 Dagens tema Signaturer Tyekonvertering Pekere og vektorer struct-er Definisjon av nye tyenavn Lister Dag Langmyhr,Ifi,UiO: Forelesning 24. januar 25 Ark 1 av 2 Dag Langmyhr,Ifi,UiO: Forelesning 24. januar

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

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

Ny/utsatt EKSAMEN. Dato: 5. januar 2018 Eksamenstid: 09:00 13:00 Ny/utsatt EKSAMEN Emnekode: ITF20006 Emne: Algoritmer og datastrukturer Dato: 5. januar 2018 Eksamenstid: 09:00 13:00 Hjelpemidler: Alle trykte og skrevne Faglærer: Jan Høiberg Om eksamensoppgavene: Oppgavesettet

Detaljer

Algoritmer og datastrukturer Eksamen 22. februar 2011

Algoritmer og datastrukturer Eksamen 22. februar 2011 Side 1 av 5 Algoritmer og datastrukturer Eksamen 22. februar 2011 Eksamenstid: 5 timer Hjelpemidler: Alle trykte og skrevne + håndholdt kalkulator som ikke kommuniserer. Faglærer: Ulf Uttersrud Råd og

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: 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

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

Binære trær: Noen algoritmer og anvendelser

Binære trær: Noen algoritmer og anvendelser Binære trær: Noen algoritmer og anvendelser Algoritmer / anvendelser: Søking i usortert binært tre Telling av antall noder og nivåer i treet Traversering av binære trær Binære uttrykkstrær Kunstig intelligens(?):

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

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

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

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

"behrozm" Oppsummering - programskisse for traversering av en graf (dybde først) Forelesning i INF februar 2009

behrozm Oppsummering - programskisse for traversering av en graf (dybde først) Forelesning i INF februar 2009 Rekursiv programmering BTeksempel Datastruktur I klassen Persontre (rotperson==) Rekursjon Noen oppgaver/problemer er rekursive «av natur» Eksempel på en rekursiv definisjon Fakultetsfunksjonen

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

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

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

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

INF1010 våren januar. Objektorientering i Java

INF1010 våren januar. Objektorientering i Java INF1010 våren 2017 25. januar Objektorientering i Java Om enhetstesting (Repetisjon av INF1000 og lær deg Java for INF1001 og INF1100) Stein Gjessing Hva er objektorientert programmering? F.eks: En sort

Detaljer

INF1010 notat: Binærsøking og quicksort

INF1010 notat: Binærsøking og quicksort INF1010 notat: Binærsøking og quicksort Ragnhild Kobro Runde Februar 2004 I dette notatet skal vi ta for oss ytterligere to eksempler der rekursjon har en naturlig anvendelse, nemlig binærsøking og quicksort.

Detaljer

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet Eksamen i INF1010 Objektorientert programmering Eksamensdag: 6. juni 2013 Tid for eksamen: 09.00 15.00 Oppgavesettet er på 5 sider. Vedlegg:

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

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

Dagens tema. INF Algoritmer og datastrukturer. Binærtrær. Generelle trær Dagens tema INF2220 - 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

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

Rekursjon. Binærsøk. Hanois tårn.

Rekursjon. Binærsøk. Hanois tårn. Rekursjon Binærsøk. Hanois tårn. Hvorfor sortering (og søking) er viktig i programmering «orden» i dataene vi blir fort lei av å lete poleksempel internett «alt» er søking og sortering alternativer til

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

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

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

Algoritmer og datastrukturer Løsningsforslag

Algoritmer og datastrukturer Løsningsforslag Algoritmer og datastrukturer ved Høgskolen i OsloSide 1 av 6 Algoritmer og datastrukturer Løsningsforslag Eksamen 24. februar 2010 Oppgave 1A 1. Komparatoren sammenligner først lengdene til de to strengene.

Detaljer

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

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

Detaljer

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

Definisjon. I et binært tre har hver node enten 0, 1 eller 2 barn Binære trær Definisjon I et binært tre har hver node enten 0, 1 eller 2 barn Rekursiv definisjon: Et binært tre er enten tomt, eller: Består av en rotnode og to binære trær som kalles venstre subtre og

Detaljer

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet Eksamen i INF1010 Objektorientert programmering Dato: 9. juni 2016 Tid for eksamen: 09.00 15.00 (6 timer) Oppgavesettet er på 7 sider. Vedlegg:

Detaljer

Oppgave 1. Oppgave 2. Høgskolen i Østfold Avdeling for informasjonsteknologi

Oppgave 1. Oppgave 2. Høgskolen i Østfold Avdeling for informasjonsteknologi Høgskolen i Østfold Avdeling for informasjonsteknologi Løsningsforslag til ny/utsatt eksamen i ITF20006 Algoritmer og datastrukturer 05.01.2018 Oppgave 1 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19

Detaljer

INF1010. Grensesnittet Comparable<T>

INF1010. Grensesnittet Comparable<T> INF1010 21. februar 2013 Grensesnittet Comparable Stein Michael Storleer Institutt for Informatikk Universitetet i Oslo Interface med parametre interface Utkledd { // T er klassen jeg er utkledd

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

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

INF januar 2015 Stein Michael Storleer (michael) Lenkelister

INF januar 2015 Stein Michael Storleer (michael) Lenkelister INF1010 29. januar 2015 Stein Michael Storleer (michael) Lenkelister Lenke + lister = lenkelister Vi starter med lenkeobjektene Lager en kjede av objekter ved hjelp av pekere class { ; Legger Jl data innholdet

Detaljer

Algoritmer og datastrukturer Eksamen

Algoritmer og datastrukturer Eksamen Eksamensoppgave i Algoritmer og datastrukturer ved Høgskolen i Oslo Side 1 av 5 Algoritmer og datastrukturer Eksamen 30.11.2010 Eksamenstid: 5 timer Hjelpemidler: Alle trykte og skrevne + håndholdt kalkulator

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

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet Eksamen i IN 115 og IN 110 Algoritmer og datastrukturer Eksamensdag: 14. mai 1996 Tid for eksamen: 9.00 15.00 Oppgavesettet er på 8 sider.

Detaljer

IN1010 våren januar. Objektorientering i Java

IN1010 våren januar. Objektorientering i Java IN1010 våren 2018 23. januar Objektorientering i Java Om enhetstesting Om arrayer og noen klasser som kan ta vare på objekter Stein Gjessing Hva er objektorientert programmering? F.eks: En sort boks som

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

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

Ny/utsatt EKSAMEN. Dato: 6. januar 2017 Eksamenstid: 09:00 13:00

Ny/utsatt EKSAMEN. Dato: 6. januar 2017 Eksamenstid: 09:00 13:00 Ny/utsatt EKSAMEN Emnekode: ITF20006 Emne: Algoritmer og datastrukturer Dato: 6. januar 2017 Eksamenstid: 09:00 13:00 Hjelpemidler: Alle trykte og skrevne Faglærer: Jan Høiberg Om eksamensoppgavene: Oppgavesettet

Detaljer

< T extends Comparable<T> > Indre klasser mm. «Det du bør ha hørt om før oblig 4»

< T extends Comparable<T> > Indre klasser mm. «Det du bør ha hørt om før oblig 4» < T extends Comparable > Indre klasser mm. «Det du bør ha hørt om før oblig 4» Strukturen i oblig 3 null null null null Personbeholder pl null null Person p "Adnan" michael@ifi.uio.no INF1010 21. februar

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

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

LO118D Forelesning 12 (DM)

LO118D Forelesning 12 (DM) LO118D Forelesning 12 (DM) Trær 15.10.2007 1 Traversering av trær 2 Beslutningstrær 3 Isomorfisme i trær Preorden-traversering 1 Behandle den nåværende noden. 2 Rekursivt behandle venstre subtre. 3 Rekursivt

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

Dagens forelesning. Java 13. Rollefordeling (variant 1) Rollefordeling (variant 2) Design av større programmer : fordeling av roller.

Dagens forelesning. Java 13. Rollefordeling (variant 1) Rollefordeling (variant 2) Design av større programmer : fordeling av roller. Dagens forelesning Java 13 Design av større programmer : fordeling av roller INF 101-13. mars 2003 Flere eksempler på bruk av objekter MVC-prinsippet MVC-prinsippet Flere eksempler på programmer med objekter

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

Algoritmer og datastrukturer Eksamen

Algoritmer og datastrukturer Eksamen Algoritmer og datastrukturer Eksamen 24.02.2010 Eksamenstid: 5 timer Hjelpemidler: Alle trykte og skrevne + håndholdt kalkulator som ikke kommuniserer. Faglærer: Ulf Uttersrud Råd og tips: Bruk ikke for

Detaljer

G høgskolen i oslo. Emne: Algoritmer og datastrukturer. Emnekode: 80131A. Faglig veileder: UlfUttersrud. Gruppe(r) : Dato: 09.12.

G høgskolen i oslo. Emne: Algoritmer og datastrukturer. Emnekode: 80131A. Faglig veileder: UlfUttersrud. Gruppe(r) : Dato: 09.12. G høgskolen i oslo Emne: Algoritmer og datastrukturer Emnekode: 80131A Faglig veileder: UlfUttersrud Gruppe(r) : Dato: 09.12.2004 Eksamenstid: 9-14 Eksamensoppgaven består av: Tillatte hjelpemidler Antall

Detaljer

Hva er verdien til variabelen j etter at følgende kode er utført? int i, j; i = 5; j = 10; while ( i < j ) { i = i + 2; j = j - 1; }

Hva er verdien til variabelen j etter at følgende kode er utført? int i, j; i = 5; j = 10; while ( i < j ) { i = i + 2; j = j - 1; } Hva er verdien til variabelen j etter at følgende kode er utført? int i, j; i = 5; j = 10; while ( i < j ) { i = i + 2; j = j - 1; Hva skrives ut på skjermen når følgende kode utføres? int [] tallene =

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

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

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

Algoritmer og Datastrukturer

Algoritmer og Datastrukturer Eksamen i Algoritmer og Datastrukturer IAI 21899 Høgskolen i Østfold Avdeling for informatikk og automatisering Torsdag 3. november 2, kl. 9. - 14. Hjelpemidler: Alle trykte og skrevne hjelpemidler. Kalkulator.

Detaljer

Algoritmer og datastrukturer Løsningsforslag

Algoritmer og datastrukturer Løsningsforslag 1 Algoritmer og datastrukturer Løsningsforslag Eksamen 29. november 2011 Oppgave 1A Verdien til variabelen m blir lik posisjonen til den «minste»verdien i tabellen, dvs. bokstaven A, og det blir 6. Oppgave

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

Algoritmer og datastrukturer Kapittel 9 - Delkapittel 9.1

Algoritmer og datastrukturer Kapittel 9 - Delkapittel 9.1 Delkapittel 9.1 Generelt om balanserte trær Side 1 av 13 Algoritmer og datastrukturer Kapittel 9 - Delkapittel 9.1 9.1 Generelt om balanserte trær 9.1.1 Hva er et balansert tre? Begrepene balansert og

Detaljer

EKSAMEN. Emne: Algoritmer og datastrukturer

EKSAMEN. Emne: Algoritmer og datastrukturer 1 EKSAMEN Emnekode: ITF20006 000 Dato: 18. mai 2012 Emne: Algoritmer og datastrukturer Eksamenstid: 09:00 til 13:00 Hjelpemidler: 8 A4-sider (4 ark) med egne notater Faglærer: Gunnar Misund Oppgavesettet

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

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

Algoritmer og Datastrukturer IAI 21899

Algoritmer og Datastrukturer IAI 21899 Eksamen i Algoritmer og Datastrukturer IAI 21899 Høgskolen i Østfold Avdeling for informatikk og automatisering Torsdag 30. november 2000, kl. 09.00-14.00 LØSNINGSFORSLAG 1 Del 1, Binære søketrær Totalt

Detaljer

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO Side 1 UNIVERSITETET I OSLO Kandidatnr Det matematisk-naturvitenskapelige fakultet Eksamen i: PRØVEEKSAMEN INF1000 Eksamensdag: Prøveeksamen 22.11.2011 Tid for eksamen: 12:15-16:15 Oppgavesettet er på

Detaljer

Object [] element. array. int [] tall

Object [] element. array. int [] tall Datastrukturer Object [] int [] tall array element 0 1 2 3 4 5 0 1 2 3 4 5 6 7 8 40 55 63 17 22 68 89 97 89 graf lenkeliste graf Object data Node neste Node neste Node neste Node neste Node Node neste

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

Eksamen INF1010 V2009 Del B prøveeksamen V2010 Vekt 60 %

Eksamen INF1010 V2009 Del B prøveeksamen V2010 Vekt 60 % Eksamen INF1010 V2009 Del B prøveeksamen V2010 Vekt 60 % Stein Gjessing Institutt for Informatikk Universitetet i Oslo 1 Oppgave 10 Tegning av datastrukturen (vekt 5% av del B) Tegn datastrukturen til

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

Algoritmer og datastrukturer Løsningsforslag

Algoritmer og datastrukturer Løsningsforslag Algoritmer og datastrukturer Løsningsforslag Eksamen 23. februar 2011 Oppgave 1A Et Huffmantre blir alltid et fullt tre, dvs. alle indre noder har to barn. Hvis vi tegner et tre ved hjelp av de bitkodene

Detaljer

Algoritmer og datastrukturer Eksamen

Algoritmer og datastrukturer Eksamen Algoritmer og datastrukturer Eksamen 02.12.2009 Eksamenstid: 5 timer Hjelpemidler: Alle trykte og skrevne + håndholdt kalkulator som ikke kommuniserer. Faglærer: Ulf Uttersrud Råd og tips: Bruk ikke for

Detaljer

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

Løsnings forslag i java In115, Våren 1999 Løsnings forslag i java In115, Våren 1999 Oppgave 1a Input sekvensen er: 9, 3, 1, 3, 4, 5, 1, 6, 4, 1, 2 Etter sortering av det første, midterste og siste elementet, har vi følgende: 2, 3, 1, 3, 4, 1,

Detaljer

Emnekode: I-Dato: I ~ Antall oppgaver: I I Aiie -sk:i=rftlige - bme trykte og håndskrevne, samt alle typer

Emnekode: I-Dato: I ~ Antall oppgaver: I I Aiie -sk:i=rftlige - bme trykte og håndskrevne, samt alle typer G høgskolen i oslo I Emne: Emnekode: ~ I Faglig veileder: Algoritmer og datastrukturer LO 140 A UlfUttersrud I Gruppe(r): I Eksamensoppgaven IbestAr av: - l Tillatte hjelpemidler: - - Antall sider (inkl.

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

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

Heap og prioritetskø. Marjory the Trash Heap fra Fraggle Rock Heap og prioritetskø Marjory the Trash Heap fra Fraggle Rock 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

Detaljer