Vanlige datastrukturer. I dette lysarksettet
|
|
- Oddvin Møller
- 6 år siden
- Visninger:
Transkript
1 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 har mye data eller mange objekter å holde orden på. Orden er et annet ord for struktur. Vi kunne også si dataorden eller orden i dataene. nettverk eller grafer vha pekere Hittil har vi holdt orden på objektene ved lister enkeltvariable (eks. double mintemp, maxtemp) operasjoner på lister binære trær operasjoner på binære trær arrayer (eks. String[][] tabell) assosiative arrayer (eks. HashMap register) filer Dette er et sett lysark for en forelesning. Mange sider er ukommentert og ufullstendige. Mange spørsmål er ubesvarte og det kan forekomme feil. Settet er tildels uegnet til selvstudium uten notater fra forelesningen. For at algorimene (programmene) vi skriver skal bli forståelige og riktige, er det vesentlig at vi har orden i dataene, dvs. en god og hensiktsmessig datastruktur. Algoritmer og datastrukturer henger så nøye sammen at det gis som eget emne, se INF1020. Stein Michael Storleer 6. mars 2007 Ark 1 av 34 Stein Michael Storleer 6. mars 2007 Ark 2 av 34 Nå skal vi se på en måteå ordne (strukturere) data på, som benytter seg av at objekter kan referere (peke på) andre objekter ved hjelp av pekervariable. Slik kan vi lage et nettverk eller en vev av objektene vi skal holde orden på. Dette kan gjøres på alle tenkelige og utenkelige måter. En slik vev eller nettverk kalles i matematikken og databehandlingen gjerne for en graf. Teori om nettverk og grafer kalles grafteori. For andre illustrasjoner av grafer eller nettverk, se Lister På norsk bruker vi vanligvis ordet «liste» for en oppramsing (gjerne vertikal) på et stykke papir e.l., jf. kandidatliste, handleliste, spillerliste, sensurliste, deltakerliste, gjesteliste, sjekkliste, ordliste,... Vi skal i se på de to vanligste datastrukturene, nemlig lister og (binære) trær. Binært tre i Kenya, se Tegning av binært tre i databehandling, se Innen databehandling er lister den vanligst forekommende datastruktur. Alle sekvensielle data kan kalles en liste. F.eks. kan en fil ses på som en liste av tekststrenger (linjer). En tekststreng er igjen en liste av tegn. Vi har allerede programmert med lister i. Her skal vi se nærmere på forskjellige måter å implementere lister på, samt forskjellige metoder til å håndtere listen på. Stein Michael Storleer 6. mars 2007 Ark 3 av 34 Stein Michael Storleer 6. mars 2007 Ark 4 av 34
2 En datastruktur kalles liste, hvis objektene, når vi tegner et objektdiagram danner en kjede. Vanligste (eneste) datastruktur Mange implementasjonsmåter (objektkjeder, array...) enkel eller dobbeltkjedet liste Listeelementer og listeoperasjoner Datastruktur En liste er en (usortert) sekvens eller kjede av elementer i sier vi helst objekter av hva som helst. Hvert objekt i kjeden er «forbundet med» to naboobjekter, forrige objekt og neste objekt. Objektene kan for eksempel være navn, personer, biler, tegn, tall, tekststrenger,.... Objektene i en liste er ofte av samme type (instanser av samme klasse), men ikke alltid. Operasjoner på listen definerer forskjellige typer køer (LIFO, FIFO,...) Pekerkjede (lenket liste) førsteperson Sammenligning med array Per Liv Ola Algoritmer Typiske listeoperasjoner er å Legge til et element Søke etter et element Fjerne et element Skrive ut alle elementene Stein Michael Storleer 6. mars 2007 Ark 5 av 34 Stein Michael Storleer 6. mars 2007 Ark 6 av 34 Pekerkjede implementasjon En liste kan implementeres som en pekerkjede, der hvert element i listen har en peker til det neste elementet i listen. Liste av personer class Person { String navn; Person nesteperson; // Neste person i listen I selve personregisteret er det tilstrekkelig å ha en peker til den første personen i listen: class PersonRegister { Person førsteperson; // Første person i listen Stein Michael Storleer 6. mars 2007 Ark 7 av 34 Stein Michael Storleer 6. mars 2007 Ark 8 av 34
3 Rekursiv løsning, kalles med rekskriv(førsteperson); Skrive ut alle personene i lista: void skrivalle() { while (p!= null) { p.skriv(); p = p.nesteperson; void rekskriv(person p) { if (p!= null) { p.skriv(); p = p.nesteperson; rekskriv(p); Denne metoden kan vi også bruke for å skrive ut alle personene fra og med et personobjekt som vi har en peker til, ikke nødvendigvis alle. Hvis det er andre operasjoner (enn å skrive ut) inne i personobjektene, kan vi bytte ut denne med p.skriv() for å få gjort det for alle personer. Stein Michael Storleer 6. mars 2007 Ark 9 av 34 Stein Michael Storleer 6. mars 2007 Ark 10 av 34 Innsetting av ny person først i lista: Fjerning av den første personen i listen: førsteperson Ida void settførst(person p) { p.nesteperson = førsteperson; førsteperson = p; Hva skjer her hvis førsteperson er null? Kan vi lage en rekusiv versjon av denne? Per Liv Ola førsteperson Person fjernførste() { if (førsteperson == null) { return null; else { førsteperson = p.nesteperson; return p; Per Liv Ola Stein Michael Storleer 6. mars 2007 Ark 11 av 34 Stein Michael Storleer 6. mars 2007 Ark 12 av 34
4 Fjerne person med gitt navn: Antall objekter i lista? Lag en metode antall som finner (og returnerer) antall personer i registeret. Rekursiv løsning: Person fjern(string navn) { Person forrige = null; while (p!= null &&! p.navn.equals(navn)) { forrige = p; p = p.nesteperson; int tellopp (Person p) { int antall; if (p == null) antall = 0; else antall = 1 + tellopp(p.neste); return antall; Kommentar: Hvis vi spør etter antall ofte, vil det heller lønne seg å ha en teller som oppdateres ved innsetting og fjerning. // p er personen som skal fjernes, // forrige er personen FØR denne i listen if (p!= null) { if (p == førsteperson) { // Spesialtilfelle: // personen som skal fjernes står først førsteperson = førsteperson.nesteperson; else { forrige.nesteperson = p.nesteperson; return p; Stein Michael Storleer 6. mars 2007 Ark 13 av 34 Stein Michael Storleer 6. mars 2007 Ark 14 av 34 Eksempel: fjern(liv) Sette inn ny person sist førsteperson Per Den siste metoden ble relativt lang. Hva om vi først lager en metode som returnerer en peker til objektet vi skal fjerne, for så å lage en metode som tar et objekt som parameter og fjerner det? Altså noe à la: p = finn(liv); tabort(p); Liv Kan det være bedre enn å ha én metode? Ola førsteperson Per void settsist(person pers) { if (førsteperson == null) { førsteperson = pers; else { while (p.nesteperson!= null) { p = p.nesteperson; // p er nå siste person i listen p.nesteperson = pers; Liv Ola Ida Stein Michael Storleer 6. mars 2007 Ark 15 av 34 Stein Michael Storleer 6. mars 2007 Ark 16 av 34
5 Finne person med gitt navn Person finn(string navn) { while (p!= null &&!p.navn.equals(navn)) { p = p.nesteperson; return p; Kan vi lage en rekursiv variant av denne? Sett at vi skal bruke registeret til å romme folkeregisteret i Norge (ca personer). Er denne metoden for å finne en person hensiktsmessig? Sortert liste Med en sortert liste, menes en liste som er sortert på et attributt i objektene, i personregistereksemplet er en alfabetisk sortering på navnet et eksempel på sortering. Det betyr at objektene ligger sortert på navn i lista, på samme måten som navnene i telefonkatalogen. Eks. Bjarne kommer før Sigrid i lista (treffes på før når vi starter med førsteperson og følger nestepekerne). Sortering er en ekstra orden eller struktur vi kan velge å legge på lista. Det gjør at enkelte operasjoner (algoritmer) blir enklere å lage å forstå, mens andre blir vanskeligere. Dette er et eksempel på hvor nært forhold det er mellom datastruktur og algoritmene som skal virke på den. Sortert liste gjør leting etter objekter lettere (hvorfor?), mens innsetting ikke lenger kan gjøres først eller sist i lista. Stein Michael Storleer 6. mars 2007 Ark 17 av 34 Stein Michael Storleer 6. mars 2007 Ark 18 av 34 Innsetting som holder lista sortert Metode som skal ligge i PersonRegister og som forutsetter at lista er sortert eller tom. (Dette er oppfylt hvis det ikke er andre steder i programmet som setter inn objekter i lista). Hva må vi passe på? I hvertfall at algoritmen er korrekt for følgende tilfeller, når førsteperson == null innobjektet skal inn først innobjektet skal inn sist void settinnsortert(person inn) { Boolean ikkefunnet = true; inn.neste = null; while (p!= null && ikkefunnet ) if (p.neste.navn.compareto(inn.navn) <= 0) p = p.neste; else ikkefunnet = false; if (p!= null) { // Spesialtilfelle: lista var tom førsteperson = inn; else { // inn skal inn etter p før p.neste inn.neste = p.neste; p = inn; innobjektet skal hverken først eller sist Hvilket tilfelle (av de 4 over) vil feile her? Stein Michael Storleer 6. mars 2007 Ark 19 av 34 Stein Michael Storleer 6. mars 2007 Ark 20 av 34
6 Tilfellet hvor innobjektet skal inn først i en fra før ikke tom liste vil feile. Hva skjer? Vi skriver om: void settinnsortert(person inn) { Boolean ikkefunnet = true; inn.neste = null; while (p!= null && ikkefunnet ) if (p.neste.navn.comparetoignorecase(inn.navn) <= 0) p = p.neste; else ikkefunnet = false; //p == null eller p.neste.navn > inn.navn if (p!= null) { //lista var tom førsteperson = inn; else if (p == førsteperson) { inn.neste = p.neste; førsteperson = inn; else { // inn skal inn etter p før p.neste inn.neste = p.neste; p = inn; void settinnsortert(person inn) { Boolean ikkefunnet = true; inn.neste = null; while (p!= null && p.neste!= null && ikkefunnet ) if (p.neste.navn.comparetoignorecase(inn.navn) <= 0) p = p.neste; else ikkefunnet = false; //p == null eller p.neste == null eller p.neste.navn > inn.navn if (p == null) { //lista var tom førsteperson = inn; else if (p == førsteperson) { //lista ikke tom, inn skal først inn.neste = p.neste; førsteperson = inn; else { // p.neste == null eller p.neste.navn > inn.navn // inn skal inn etter p før p.neste inn.neste = p.neste; p.neste = inn; Stein Michael Storleer 6. mars 2007 Ark 21 av 34 Stein Michael Storleer 6. mars 2007 Ark 22 av 34 Hva skjer hvis inn.navn.equalsignorecase(p.neste.navn), med andre ord hvis det finnes en person med samme navn som den personen vi vil sette inn? Hvis vi er sikre på at innobjektet ikke skal inn først i lista, blir metoden mye kortere. Hva trenger vi ikke sjekke da? Binært søketre Vi skriver om class Person slik at den nå har to personpekere: Trær av personer class Person { String navn; Person foran, // Peker til personer alfabetisk før denne etter; // Peker til personer alfabetisk etter denne Ved først å sette inn et personobjekt med navn= AAAAAAAAAAAA e.l. sikrer vi dette. Et slikt objekt som ikke svarer til en virkelig person, kalles ofte listehode. Det er i datastrukturen for å lette programmeringen. Selv med en sortert liste må vi i snitt søke lenge (hvor lenge hvis det er 5 millioner personer?) før vi finner en person med et gitt navn. Da er binære trær en atskillig bedre datastruktur. type: String navn: navn type: Person navn: foran "Sokrates" type: Person navn: etter Sokrates Forenklet objekt Et objekt av klassen Person Stein Michael Storleer 6. mars 2007 Ark 23 av 34 Stein Michael Storleer 6. mars 2007 Ark 24 av 34
7 Ideen er nå å sette inn objektene slik at alle personene som vi finner ved å følge etter pekeren er alfabetisk større enn dette objektets navn. Tilsvarende skal alle personobjekter vi kan finne ved å følge foran pekeren være alfabetisk mindre enn dette objektets navn. Jasmina Når vi skal legge til et personobjekt, sjekker vi først navnet til førsteperson. Her har vi fire muligheter: Imran Nikita ❶førstePerson == null, objektet med innavnet er første objekt. ❷ innnavnet er likt, ingenting legges til (i dette eksemplet) Objekter som har navn som kommer alfabetisk foran (mindre enn) "Imran" Objekter hvor navn er større enn "Nikita" ❸ innavnet er større og personen skal legges til (treet) etter ❹ innavnet er mindre og personen skal legges til (treet) foran Sette inn en person i treet Metoden vi bruker for å legge til et objekt har to personpekere som parametre. Første parameter er en peker til treet vi skal sette objektet (andreparameteren peker på) inn i. Metoden kalles med kallet settinnitre(førsteperson, nyperson); Stein Michael Storleer 6. mars 2007 Ark 25 av 34 Stein Michael Storleer 6. mars 2007 Ark 26 av 34 Vi lager en første skisse i kvasikode : Andreas Christian Darjan Eirik Elisabeth Gry Gunnar Helge Henrik Imran Jan Jim Jørgen Nguyen Nikita Philip Pål Simen Siv Stian Susanne Tor Torjus Vivi Fra sortert liste (øverst) til binært søketre Jørgen void settinnitre(person tre, Person inn) { if (tre == null) { tre = inn; else if ( innpersonens navn er større enn denne personens navn ) //da er inn.navn alfabetisk etter tre.navn <sett inn innpersonen i treet pekt på av etter> else if ( innpersonens navn er mindre enn denne personens navn ) //da er inn.navn alfabetisk foran tre.navn <sett inn innpersonen i treet pekt på av foran> else if ( innpersonens navn er lik denne personens navn ) //da er inn.navn lik tre.navn <vi skal ikke sette inn noen person> Eirik Christian Andreas Darjan Elisabeth Gry Gunnar Henrik Helge Jan Imran Jim Nikita Nguyen Philip Pål Siv Simen Stian Susanne Torjus Tor Vivi Vi har allerede skrevet ut koden, slik at metoden er korrekt hvis treet er tomt. Hvis treet ikke er tomt (tre!= null), har vi tilgang til de to (muligens tomme) trærne tre.foran og tre.etter. Det er i en av disse vi skal sette inn innpersonen hvis vi ser bort fra tilfellet der innavnet er lik navnet i objektet pekt på av tre. Siden metoden settinnitre kan sette en ny person inn i et tre pekt på av tre, kan vi (rekursivt) bruke metoden vi lager: Stein Michael Storleer 6. mars 2007 Ark 27 av 34 Stein Michael Storleer 6. mars 2007 Ark 28 av 34
8 void settinnitre(person tre, Person inn) { if (tre == null) { tre = inn; else if ( innpersonens navn er større enn denne personens navn ) //da er inn.navn alfabetisk etter tre.navn settinnitre(tre.etter, inn); else if ( innpersonens navn er mindre enn denne personens navn ) //da er inn.navn alfabetisk foran tre.navn settinnitre(tre.foran, inn); else <vi skal ikke sette inn noen person> Hva med rekursjonskriteriene? basis er tre == null det rekursive kallet er nærmere basis fordi tre.etter (eller tre.foran) er nærmere bladene. Aldri to rekursive kall i en metodeinstans Da kan vi programmere ut. Siste elsegren kan vi kutte ut fordi vi i det tilfellet (navnelikhet) ikke skal sette inn noe. Hvordan vi sammenligner tekststrenger er ikke vesentlig her, men i ekemplet har jeg brukt comparetoignorecase (fra String klassen) som returnerer et heltall. void settinnitre(person tre, Person inn) { if (tre == null) tre = inn; else { int smnlgn = tre.navn.comparetoignorecase(inn.navn); if ( smnlgn < 0 ) settinnitre(tre.etter, inn); else if ( smnlgn > 0 ) settinnitre(tre.foran, inn); Det er bare en hake ved dette. Det virker ikke. Når tre = inn forandrer ikke det verdien til den aktuelle parameteren. Dette skyldes parameteroverføringen i Java. Resultatet er at vi ikke får endret på pekerverdiene i datastrukturen. Men hadde Java virket slik at verdien til en aktuell parameter hadde blitt endret, hadde denne algoritmen vært den enkleste, også siden det tar med tilfellet der treet til å begynne med er tomt, tre == null. Stein Michael Storleer 6. mars 2007 Ark 29 av 34 Stein Michael Storleer 6. mars 2007 Ark 30 av 34 Henrik Andreas Gunnar Elisabeth Christian Gry Darjan Eirik Helge 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 Philip Siv Imran Jan Jim Jørgen Nikita Nguyen Pål Philip Susanne Vivi Torjus Tor Simen Stian Vi antar at treet (egentlig personen i roten av treet) eksisterer, dvs. ikke er null: Person treet = new Person; treet.navn = Katrine ; Vi kan da legge til grunn at tre!= null når vi setter inn en ny person, nyperson, ved kallet settinnitre(treet, nyperson): void settinnitre(person tre, Person inn) { int smnlgn = tre.navn.comparetoignorecase(inn.navn); if ( smnlgn < 0 ) { if (tre.etter == null) tre.etter = inn; else settinnitre(tre.etter, inn); else if ( smnlgn > 0 ) { if (tre.foran == null) tre.foran = inn; else settinnitre(tre.foran, inn); else {; Slik blir treet hvis navnene kommer slik lista over er (fra øverst og nedover) Siv Stein Michael Storleer 6. mars 2007 Ark 31 av 34 Stein Michael Storleer 6. mars 2007 Ark 32 av 34
9 Andreas Christian Darjan Finne en person med et gitt navn blir nokså likt det å sette inn en person. Metoden skal returnere med en peker til et personobjekt i treet som har likt navn med innparameteren. Hvis dette objektet ikke finnes, skal metoden returnere null. Treet vi skal lete i må også være innparameter. Når vi skal lete i hele treet, bruker vi kallet finnitre(førsteperson, navnet). Slik blir treet hvis person objektene settes inn i alfabetisk rekkefølge. Eirik Elisabeth Gry Gunnar Helge Henrik Resten i stigende orden Person finnitre(person tre, String navn) { Person funnetperson = null; if (tre!= null) { int smnlgn = tre.navn.comparetoignorecase(navn); if ( smnlgn < 0 ) funnetperson = finnitre(tre.etter, navn); else if ( smnlgn > 0 ) funnetperson = finnitre(tre.foran, navn); return funnetperson; basis er tre == null, ingen rekursjon det rekursive kallet er nærmere basis fordi tre.etter (eller tre.foran) er nærmere bladene. Aldri to rekursive kall i en metodeinstans Stein Michael Storleer 6. mars 2007 Ark 33 av 34 Stein Michael Storleer 6. mars 2007 Ark 34 av 34
10
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
DetaljerINF1010 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
DetaljerHvorfor 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
DetaljerDagens 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
DetaljerINF1010 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
DetaljerStudieaktiviteter 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
DetaljerLenkelister. 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)
DetaljerVelkommen 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
DetaljerOperasjoner 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
Detaljeralternativer 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»
DetaljerVersjon (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
DetaljerDagens 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»
DetaljerDagens 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 { ; ;
DetaljerEn 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
DetaljerFinne et personobjekt med et gitt navn. Sette personobjekt inn i treet
INF1010 e-ostadresser Ikke-faglige sørsmål til studieinfo@ifi.uio.no. Faglige sørsmål til blogen eller til @ifi.uio.no: brukernavn navn kristoeb Kristoffer Egil Bonarjee josek Jose Louis Rojas
DetaljerBinæ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
DetaljerLenkelister. 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
DetaljerEKSAMEN. 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
DetaljerINF 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
DetaljerOppgavesettet 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
DetaljerINF1010 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
DetaljerUNIVERSITETET 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:
DetaljerRekursjon. 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
DetaljerUNIVERSITETET 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:
DetaljerINF1010 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
DetaljerDefinisjon 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
DetaljerEks 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å
DetaljerGjø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å
DetaljerNy/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
DetaljerBinæ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
DetaljerINF1010 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.
DetaljerEKSAMEN. 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
DetaljerUNIVERSITETET 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.
DetaljerLenkelister, iteratorer, indre klasser. Repetisjonskurs våren 2018 kristijb
Lenkelister, iteratorer, indre klasser Repetisjonskurs våren 2018 kristijb Lenket liste av objekter Vi lager en lenke ved at objekter refererer til hverandre. Vanlige er ofte å ha Node-objekter som har
DetaljerFra 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
DetaljerINF1010 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
DetaljerAlgoritmer 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.
DetaljerNy/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
DetaljerLø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
DetaljerINF110 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
DetaljerEKSAMEN. 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
DetaljerAlgoritmer 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
DetaljerDefinisjon: 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
DetaljerAlgoritmer 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
DetaljerUNIVERSITETET I OSLO
UNIVERSITETET I OSLO BOKMÅL Det matematisk-naturvitenskapelige fakultet Eksamen i : Eksamensdag : Torsdag 2. desember 2004 Tid for eksamen : 09.00 12.00 Oppgavesettet er på : Vedlegg : Tillatte hjelpemidler
DetaljerOppgave 1. Sekvenser (20%)
Det matematisk-naturvitenskapelige fakultet UNIVERSITETET I BERGEN Eksamen i emnet I 20 - Algoritmer, datastrukturer og programmering Mandag 2.Mai 200, kl. 09-5. Ingen hjelpemidler tillatt. Oppgavesettet
DetaljerObligatorisk 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
DetaljerOppgave 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"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
DetaljerDagens 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
DetaljerINF2220: 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)
DetaljerEKSAMEN 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... 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)
DetaljerEKSAMEN. 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
DetaljerDagens 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
DetaljerLøsningsforslag til INF110 h2001
Løsningsforslag til INF110 h2001 Eksamen i : INF 110 Algoritmer og datastrukturer Eksamensdag : Lørdag 8. desember 2001 Tid for eksamen : 09.00-15.00 Oppgavesettet er på : 5 sider inkludert vedlegget Vedlegg
Detaljerklassen Vin må få en ny variabel Vin neste alle personvariable (personpekere) i listeklassen må byttes til Vin
INF1010 forelesning Lenkelister II Dette skrivet inneholder en oversikt over det jeg planlegger å forelese på andre forlesning om lenkelister. Det inneholder stort sett programeksempler med kommentarer
DetaljerUNIVERSITETET 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å
DetaljerE 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
DetaljerINF1010 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
DetaljerLø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
DetaljerRepetisjon: 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
DetaljerEksamen 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
DetaljerIN1010 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
DetaljerEndret litt som ukeoppgave i INF1010 våren 2004
Endret litt som ukeoppgave i INF1010 våren 2004!!!" # # $# ##!!%# # &##!'! Kontroller at oppgavesettet er komplett før du begynner å besvare det. Les gjerne gjennom hele oppgavesettet før du begynner med
DetaljerDagens 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
DetaljerINF1000 (Uke 15) Eksamen V 04
INF1000 (Uke 15) Eksamen V 04 Grunnkurs i programmering Institutt for Informatikk Universitetet i Oslo Anja Bråthen Kristoffersen og Are Magnus Bruaset 22-05-2006 2 22-05-2006 3 22-05-2006 4 Oppgave 1a
DetaljerINF1000 (Uke 15) Eksamen V 04
INF1000 (Uke 15) Eksamen V 04 Grunnkurs i programmering Institutt for Informatikk Universitetet i Oslo Anja Bråthen Kristoffersen og Are Magnus Bruaset 22-05-2006 2 22-05-2006 3 22-05-2006 4 Oppgave 1a
DetaljerSøkeproblemet. Gitt en datastruktur med n elementer: Finnes et bestemt element (eller en bestemt verdi) x lagret i datastrukturen eller ikke?
Søking Søkeproblemet Gitt en datastruktur med n elementer: Finnes et bestemt element (eller en bestemt verdi) x lagret i datastrukturen eller ikke? Effektiviteten til søkealgoritmer avhenger av: Om datastrukturen
DetaljerUke 8 Eksamenseksempler + Ilan Villanger om studiestrategier. 11. okt Siri Moe Jensen Inst. for informatikk, UiO
Uke 8 Eksamenseksempler + Ilan Villanger om studiestrategier 11. okt. 2011 Siri Moe Jensen Inst. for informatikk, UiO 1 Innhold Eksamen INF1000 Høst 2011: Oppgave 4-7 Tekstmanipulering Metoder med og uten
DetaljerUNIVERSITETET 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å
DetaljerListe 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
DetaljerLø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
DetaljerINF1010. Rekursjon En rekursiv definisjon av rekursjon, slik det kunne stå i en ordbok: Introduksjon til Rekursiv programmering
Introduksjon til Rekursiv programmering To iterate is human; to recurse, divine. L. Peter Deutsch, Robert Heller Rekursjon En rekursiv definisjon av rekursjon, slik det kunne stå i en ordbok: rekursjon
DetaljerINF1000 HashMap. Marit Nybakken marnybak@ifi.uio.no 2. november 2003
INF1000 HashMap Marit Nybakken marnybak@ifi.uio.no 2. november 2003 Dette dokumentet skal tas med en klype salt og forfatteren sier fra seg alt ansvar. Dere bør ikke bruke definisjonene i dette dokumentet
DetaljerEnkle generiske klasser i Java
Enkle generiske klasser i Java Oslo, 7/1-13 Av Stein Gjessing, Institutt for informatikk, Universitetet i Oslo Del 1: Enkle pekere Før vi tar fatt på det som er nytt i dette notatet, skal vi repetere litt
DetaljerG 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
DetaljerINF Notater. Veronika Heimsbakk 10. juni 2012
INF1010 - Notater Veronika Heimsbakk veronahe@student.matnat.uio.no 10. juni 2012 1 Tilgangsnivåer 2 CompareTo Modifier Class Package Subclass World public Y Y Y Y protected Y Y Y N no modifier Y Y N N
DetaljerAlgoritmer 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.
DetaljerDefinisjon. 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
DetaljerINF1010. Stein Michael Storleer (michael) Lenkelister
INF1010 Stein Michael Storleer (michael) Lenkelister Lenke Datastrukturen lenkeliste class { = null ; foran foran = new () ; class { = null ; foran foran = new () ; foran. = new () ; class { = null ; foran
DetaljerUNIVERSITETET I OSLO
UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet Eksamen i Eksamensdag: 6. juni 2006 Tid for eksamen: 1430 1730 Oppgavesettet er på 6 sider. Vedlegg: INF1010 Objektorientert programmering
DetaljerIntroduksjon til objektorientert programmering
Introduksjon til objektorientert programmering Samt litt mer om strenger og variable INF1000, uke6 Ragnhild Kobro Runde Grunnkurs i objektorientert programmering Strategi: Splitt og hersk Metoder kan brukes
DetaljerUNIVERSITETET I OSLO
UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet Eksamen i Eksamensdag: 4. juni 2005 Tid for eksamen: 0900 1500 Oppgavesettet er på 5 sider. Vedlegg: Tillatte hjelpemidler: INF1010 Objektorientert
Detaljer1- og 2-veis Innkapsling Java Stabel Kø Prio-kø Iterator. Enveis- og toveislister Innkapsling («boxing») (Big Java 6.8.5)
Dagens tema Litt mer om vanlige lister Enveis- og toveislister Innkapsling («boxing») (Big Java 6.8.5) Nyttige varianter av lister: Stabler («stacks») (Big Java 15.5.1) Køer («queues») (Big Java 15.5.2)
DetaljerDagens 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
DetaljerUNIVERSITETET I OSLO
UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet Eksamen i INF1000 Grunnkurs i objektorientert programmering Eksamensdag: 11. juni 2004 Tid for eksamen: 9.00 12.00 Oppgavesettet er på 8
DetaljerBinæ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(?):
DetaljerGjennomgang av eksamen H99
Gjennomgang av eksamen H99 Administrasjon av kurser, studenter og påmeldinger Ole Christian Lingjærde Gruppen for bioinformatikk Institutt for Informatikk Universitetet i Oslo Oppgave 1 (15 %) (Besvares
DetaljerEKSAMEN. 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
DetaljerEksamen iin115, 14. mai 1998 Side 2 Oppgave 1 15 % Du skal skrive en prosedyre lagalle som i en global character array S(1:n) genererer alle sekvenser
UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet Eksamen i IN 115 Algoritmer og datastrukturer Eksamensdag: 14. mai 1998 Tid for eksamen: 9.00 15.00 Oppgavesettet er på 8 sider. Vedlegg:
Detaljer2 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.
DetaljerHeap 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
DetaljerINF1000 EKSTRATILBUD. Stoff fra uke 1-5 (6) 3. oktober 2012 Siri Moe Jensen
INF1000 EKSTRATILBUD Stoff fra uke 1-5 (6) 3. oktober 2012 Siri Moe Jensen PLAN FOR DAGEN gjennomgå stoff fra uke 1-5(6), men med en litt annen tilnærming kun gjennomgått stoff, men vekt på konsepter og
DetaljerAlgoritmer 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.
DetaljerKapittel 9: Sortering og søking Kort versjon
Kapittel 9: Sortering og søking Kort versjon Redigert av: Khalid Azim Mughal (khalid@ii.uib.no) Kilde: Java som første programmeringsspråk (3. utgave) Khalid Azim Mughal, Torill Hamre, Rolf W. Rasmussen
DetaljerEksamen 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
DetaljerEksamensoppgaver 2014
Eksamensoppgaver 2014 Først kommer alle de relevante små-oppgavene og deretter den store oppgaven. Oppgave 1 (4 p) a) Hva er verdien til tall etter at følgende kode er utført? tall = (5+3)*2 tall = tall+2
DetaljerRekursjon. Hanois tårn. Milepeler for å løse problemet
Rekursjon. Hanois tårn. Milepeler for å løse problemet Hanois tårn. Milepeler for å løse problemet Forstå spillet Bestemme/skjønne hvordan spillet løses Lage en plan for hva programmet skal gjøre (med
DetaljerUNIVERSITETET I OSLO
UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet Kandidatnr Eksamen i INF1000 Grunnkurs i objektorientert programmering Eksamensdag: Onsdag 10. juni 2009 Tid for eksamen: 9.00 12.00 Oppgavesettet
Detaljer