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

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

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

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

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

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

EKSAMEN. Algoritmer og datastrukturer

EKSAMEN. Emne: Algoritmer og datastrukturer

EKSAMEN. Algoritmer og datastrukturer. Eksamensoppgaven: Oppgavesettet består av 11 sider inklusiv vedlegg og denne forsiden.

Algoritmer og Datastrukturer

EKSAMEN. Emne: Algoritmer og datastrukturer

Algoritmer og Datastrukturer

EKSAMEN med løsningsforslag

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

Oppgave 1. Sekvenser (20%)

Algoritmer og Datastrukturer

EKSAMEN. Algoritmer og datastrukturer. Eksamensoppgaven: Oppgavesettet består av 10 sider inklusiv vedlegg og denne forsiden.

Løsningsforslag EKSAMEN

EKSAMEN. Bildebehandling og mønstergjenkjenning

Algoritmer og Datastrukturer

UNIVERSITETET I OSLO

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

Høgskoleni østfold EKSAMEN

UNIVERSITETET I OSLO

Algoritmer og Datastrukturer

Høgskoleni østfold EKSAMEN. ITF10213 Innføring i programmering (Høst 2013)

UNIVERSITETET I OSLO

Algoritmer og datastrukturer Eksamen

EKSAMEN ITF Webprogrammering 1 Dato: Eksamenstid: Hjelpemidler: 2 A4 ark (4 sider) med egenproduserte notater (håndskrevne/maskinskrevne)

UNIVERSITETET I OSLO

EKSAMEN. Emne: Algoritmer og datastrukturer Eksamenstid: kl til kl. 1300

UNIVERSITETET I OSLO

EKSAMENSOPPGAVE. IAI20102 Algoritmer og datastrukturer

København 20 Stockholm

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

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

EKSAMEN. Objektorientert programmering

UNIVERSITETET I OSLO

Løsningsforslag til INF110 h2001

Definisjon av binært søketre

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

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO

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

Obligatorisk oppgave 1 INF1020 h2005

Binære trær: Noen algoritmer og anvendelser

UNIVERSITETET I OSLO

E K S A M E N. EKSAMENSDATO: 15. desember 1994 TID: Kladd og oppgavearkene leveres sammen med besvarelsen. Kladd merkes med "KLADD".

Faglærerne prøver å besøker eksamenslokalet mellom klokka 15 og 16 for å oppklare eventuelle uklarheter og feil i oppgaveteksten.

UNIVERSITETET I OSLO

EKSAMEN. Emne: Webprogrammering med PHP (kont.) Webprogrammering 1 (kont.) Eksamenstid:

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

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

UNIVERSITETET I OSLO

Definisjon: Et sortert tre

UNIVERSITETET I OSLO

Høgskoleni østfold EKSAMEN. 4 dobbeltsidige ark med notater Lars Magnusson

UNIVERSITETET I OSLO

Høgskoleni østfold EKSAMEN

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO

EKSAMEN (Konvertert fra en gammel PHPeksamen)

Eksamen iin115 og IN110, 15. mai 1997 Side 2 Oppgave 1 Trær 55 % Vi skal i denne oppgaven se på en form for søkestrukturer som er spesielt godt egnet

Høgskoleni østfold EKSAMEN. Hjelpem idler: Faglærer: Kåre Sorteberg Ingen hjelpemidler. Monica Kristiansen

EKSAMEN. Les gjennom alle oppgavene før du begynner. Husk at det ikke er gitt at oppgavene står sortert etter økende vanskelighetsgrad.

Høgskoleni Østfold. Ny/utsatt EKSAMEN

UNIVERSITETET I OSLO

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

lfæ~~~~:::j~~:~l -.~=:~-t::-d I Alle trykte og håndskrevne EKSAMENSOPPGA VE Side l av 5 Eksamenstid:

NORGES INFORMASJONSTEKNOLOGISKE HØGSKOLE PG4200 Algoritmer og datastrukturer

Innledning. IN2010/INF Algoritmer og datastrukturer. Tirsdag 27. november 2018 Kl (4 timer)

Vanlige datastrukturer. I dette lysarksettet

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

Eksamensoppgaver 2014

UNIVERSITETET I OSLO

Høgskoleni østfold EKSAMEN. Emne: Innføring i programmering

UNIVERSITETET I OSLO

består av 7 sider inklusiv denne forsiden og vedlegg. Kontroller at oppgaven er komplett før du begynner å besvare spørsmålene.

Løsningsforslag. Emnekode: Emne: Matematikk for IT ITF Eksamenstid: Dato: kl til kl desember Hjelpemidler: Faglærer:

Antall sider (inkl. forsiden): 7. Alle trykte og håndskrevne

UNIVERSITETET I OSLO

OPPGAVE 1 OBLIGATORISKE OPPGAVER (OBLIG 1) (1) Uten å selv implementere og kjøre koden under, hva skriver koden ut til konsollen?

UNIVERSITETET I OSLO

Høgskolen i Gjøvik. Avdeling for elektro- og allmennfag K O N T I N U A S J O N S E K S A M E N. EKSAMENSDATO: 11. august 1995 TID:

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

EKSAMEN. Oppgavesettet består av 16 oppgaver. Ved sensur vil alle oppgaver telle like mye med unntak av oppgave 6 som teller som to oppgaver.

Algoritmer og datastrukturer Eksamen

Datastrukturer for rask søking

Søkeproblemet. Gitt en datastruktur med n elementer: Finnes et bestemt element (eller en bestemt verdi) x lagret i datastrukturen eller ikke?

EKSAMEN. Oppgavesettet består av 9 oppgaver med i alt 20 deloppgaver. Ved sensur vil alle deloppgaver telle omtrent like mye.

KANDIDATEN MÅ SELV KONTROLLERE AT OPPGAVESETTET ER FULLSTENDIG

Algoritmer og Datastrukturer

Prøve- EKSAMEN med løsningsforslag

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

ALGORITMER OG DATASTRUKTURER

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

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO

Algoritmer og Datastrukturer IAI 21899

Algoritmer og datastrukturer Løsningsforslag

Transkript:

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 av 7 sider, inkludert denne forsiden. Kontrollér at oppgaven er komplett før du begynner å besvare spørsmålene. Oppgavesettet består av 4 oppgaver med i alt 16 deloppgaver. Innen hver av de 4 oppgavene vektes alle deloppgaver likt. En av deloppgavene har 5 nummererte underpunkter som også vektes likt. Les hver oppgave nøye før du begynner på besvarelsen. Programkode i besvarelsen skal skrives i Java. Legg vekt på å skrive ryddig og lett forståelig kode. Sensurdato: 30. mai 2016 Karakterene er tilgjengelige for studenter på studentweb senest 2 virkedager etter oppgitt sensurfrist. Følg instruksjoner gitt på: www.hiof.no/studentweb Side 1 av 7

Oppgave 1: Algoritmeanalyse (25%) For hver metode i deloppgavene a) f) nedenfor avhenger arbeidsmengden av parameteren n, som er et positivt heltall. Gjør følgende for hver metode: Angi metodens arbeidsmengde med O-notasjon. Gi en kort begrunnelse for svaret. Beskriv kort hva metoden beregner og returnerer. a) long metode_a(int n) long f = 1; for (int i = 1; i <= n; i++) f *= i; return f; b) long metode_b(int n) if (n < 2) return 1; return n * metode_b(n 1); c) int metode_c(int n) int i = n, l = 0; while (i > 0) l++; i /= 10; return l; d) long metode_d(int n) long s = 0; for (int i = 0; i < n; i++) for (int j = 0; j < n; j++) s++; return s; e) int metode_e(int m, int n) if (n == 1) return m; return (m + metode_e(m, n 1)); f) long metode_f(int n) if (n <= 2) return 1; return metode_f(n 1) + metode_f(n 2); (Slutt på på oppgave 1) Side 2 av 7

Oppgave 2: Stack, kø og liste (20%) a) Forklar kort hvorledes en stack kan implementeres med en enkel-lenket liste slik at operasjonene på stacken er O(1), dvs. at effektiviteten av innsetting og fjerning av data ikke avhenger av hvor mange elementer som er lagret. Tegn enkle figurer som viser hvorledes operasjonene push og pop implementeres med lenket liste. b) Forklar kort hvorledes en kø kan implementeres med en enkel-lenket liste slik at operasjonene på køen er O(1). Tegn enkle figurer som viser hvorledes operasjonene enqueue og dequeue implementeres med lenket liste. (Slutt på på oppgave 2) Side 3 av 7

Oppgave 3: Sortering, datastrukturer og effektivitet (25%) I programmering brukes ofte betegnelsen "black box" om programvare der bare grensesnittet/ funksjonaliteten er kjent, mens selve "innmaten"/implementasjonen ikke er tilgjengelig. I denne oppgaven skal du skrive et lite program som bruker en slik "black box". Følgende Java-klasse, som implementerer en datastruktur for å lagre heltall, er gitt: public class blackbox public blackbox(int n) // Konstruktør som oppretter en black box som kan // lagre opp til n heltall public void insert(int value) // Metode for å sette inn et nytt heltall i en // black box public int removemin() // Metode for å fjerne minste heltall fra en black box // Returnerer verdien som fjernes Symbolet brukes ovenfor til å angi at selve koden som implementerer klassen og metodene ikke er tilgjengelig. I programmet du skal skrive nedenfor, kan du anta at du har full tilgang til å kunne bruke metodene i klassen blackbox. a) Programmér følgende metode: void blackboxsort(int a[]) Metoden blackboxsort skal sortere arrayen a, ved å bruke de tre metodene som er angitt for klassen blackbox ovenfor. Metodene insert og removemin skal begge kalles nøyaktig like mange ganger som det er elementer i arrayen a. (Opppgave 3 fortsetter på neste side) Side 4 av 7

Effektiviteten til metoden blackboxsort vil avhenge av hvor effektivt klassen blackbox implementerer innsetting og fjerning av verdier i datastrukturen. b) Anta at arrayen som skal sorteres inneholder n elementer. Angi arbeidsmengden for metoden blackboxsort, uttrykt med O-notasjon, når klassen blackbox er implementert som: 1. Usortert array 2. Usortert lenket liste 3. Vanlig binært søketre (ikke selvbalanserende) 4. Heap 5. B-tre av orden 4 For hvert av tilfellene 1 5 ovenfor skal det gis en kort begrunnelse for svaret. c) Kan klassen blackbox implementeres effektivt som en hashtabell? Begrunn svaret. (Slutt på opppgave 3) Side 5 av 7

Oppgave 4: Binære søketrær (30%) I denne oppgaven brukes det et binært søketre som lagrer data om personer. For hver person skal det lagres: Etternavn (en tekststreng) Fornavn (en tekststreng) Alder (et heltall) Søketreet er alfabetisk sortert på etternavn. For personer med samme etternavn, ligger fornavn og alder for hver person lagret i en sortert, lenket liste, sortert alfabetisk på fornavn. Det er én slik liste for hver node i treet. En tegning som viser et eksempel på denne datastrukturen er gitt i figur 1 på neste side. Nodene i søketreet skal være av klassen trenode. Nodene i lenkede lister skal være av klassen listenode. a) Skriv Java-kode for de to klassene trenode og listenode, slik at de bare inneholder variablene som trengs for å lagre datastrukturen beskrevet ovenfor. b) Skriv en konstruktør for klassen listenode som setter fornavn og alder til gitte verdier. Andre variable i klassen skal også få fornuftig(e) verdi(er). c) Skriv en konstruktør for klassen trenode som har som parameter fornavn, etternavn og alder til en person. Konstruktøren skal bruke metoden du skrev i forrige deloppgave. d) Skriv en rekursiv metode: void skrivpersoner(trenode rot) som skriver ut en linje med data for hver person som er lagret i treet med rot i noden rot. En linje med utskrift kan se slik ut: Høiberg, Jan (42) Utskriften skal være sortert på etternavn. Personer med samme etternavn skal skrives ut sortert på fornavn. e) Skriv en rekursiv metode: boolean finnes(trenode rot, String fornavn, String etternavn) som returnerer true hvis det finnes en person lagret i treet med rot i noden rot, som har fornavn lik verdien av parameteren fornavn og etternavn lik verdien av parameteren etternavn. Hvis denne personen ikke finnes, skal metoden returnere false. Metoden finnes skal være så effektiv som mulig. (Slutt på opppgave 4) Side 6 av 7

Side 7 av 7