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

Like dokumenter
EKSAMENSOPPGAVE. INF-1100 Innføring i programmering og datamaskiners virkemåte. Teorifagb, hus 3, og og Adm.bygget, Aud.max og B.

EKSAMENSOPPGAVE. Vil det bli gått oppklaringsrunde i eksamenslokalet? Svar: JA / NEI Hvis JA: ca. kl. 10:30

EKSAMENSOPPGAVE. Ingen. Robert Pettersen. Eksamen i: INF Innf. i progr. og datam. virkem. Dato: Tirsdag 5. desember 2017

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

EKSAMENSOPPGAVE. INF-1100 Innføring i programmering og datamaskiners virkemåte. Ingen. Elektronisk (WiseFlow) Robert Pettersen

EKSAMENSOPPGAVE. Kontaktperson under eksamen: Steffen Viken Valvåg Telefon:

EKSAMENSOPPGAVE. Vil det bli gått oppklaringsrunde i eksamenslokalet? Svar: NEI

EKSAMENSOPPGAVE. Adm.bygget, rom K1.04 og B154 Ingen. Vil det bli gått oppklaringsrunde i eksamenslokalet? Svar: JA / NEI Hvis JA: ca. kl.

EKSAMENSOPPGAVE / EKSAMENSOPPGÅVE

EKSAMENSOPPGAVE. Alle skrevne og trykte. Godkjent kalkulator.

UNIVERSITETET I OSLO

Algoritmer og Datastrukturer

Tillatte hjelpemidler: alle skrevne og trykte. Antall sider: 2 (+ 1 side vedlegg, bakerst). Oppgave 1 [25%]

EKSAMENSOPPGÅVE. Kalkulator, Rottmanns tabellar og 2 A4 ark med eigne notater (4 sider).

EKSAMENSOPPGAVE. Vil det bli gått oppklaringsrunde i eksamenslokalet? Svar: JA / NEI Hvis JA: ca. kl. 10

UNIVERSITETET I OSLO

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

EKSAMENSOPPGAVE. Godkjent kalkulator; Rottmanns tabeller; To A4 ark egne notater (håndskrevne, trykte, eller blandede).

EKSAMENSOPPGAVE. Vil det bli gått oppklaringsrunde i eksamenslokalet? Svar: JA Hvis JA: ca. kl.10:00 og 12:00

Oppgave 1. Sekvenser (20%)

EKSAMEN. Algoritmer og datastrukturer

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO

EKSAMENSOPPGÅVE. Kalkulator, 2 ark (4 sider) med eigne notater og Rottmanns tabeller. Ragnar Soleng

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

København 20 Stockholm

EKSAMENSOPPGAVE. GEO-2010 Marine geofag

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

Algoritmer og Datastrukturer

EKSAMEN med løsningsforslag

UNIVERSITETET I OSLO

EKSAMENSOPPGAVE / EKSAMENSOPPGÅVE

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

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:

INF Algoritmer og datastrukturer

EKSAMENSOPPGAVE. 4 (1+3) Det er 12 deloppgaver (1abc, 2abcd, 3abc, 4ab) Andrei Prasolov

EKSAMENSOPPGÅVE. Mat-1005, Diskret matematikk. Godkjent kalkulator, Rottmanns tabellar og 2 A4 ark med eigne notater (4 sider).

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

UNIVERSITETET I OSLO

Algoritmer og Datastrukturer

EKSAMENSOPPGAVE. «Tabeller og formler i statistikk» av Kvaløy og Tjelmeland. To A4-ark/ 4 sider med egne notater. Godkjent kalkulator.

UNIVERSITETET I OSLO

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

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO

Algoritmer og Datastrukturer

Eksamensoppgave i TDT4120 Algoritmer og datastrukturer

EKSAMENSOPPGAVE. KRAFT I og II Hall del 2 Kraft sportssenter Ingen

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

EKSAMEN. Emne: Algoritmer og datastrukturer

KONTINUASJONSEKSAMEN

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

UNIVERSITETET I OSLO

INF Algoritmer og datastrukturer

INF Algoritmer og datastrukturer

INF Algoritmer og datastrukturer

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

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

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

Algoritmer og Datastrukturer

Lars Vidar Magnusson

INF Algoritmer og datastrukturer

KONTINUASJONSEKSAMEN

UNIVERSITETET I OSLO

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

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

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

IN Algoritmer og datastrukturer

EKSAMENSOPPGAVE I INF-1100

Definisjon: Et sortert tre

Eksamen i emnet INF100 Grunnkurs i programmering (Programmering I)

Definisjon av binært søketre

EKSAMENSOPPGAVE. INF-1400 Objektorientert Programmering. Dato: Tirsdag 23. mai Klokkeslett: Kl 17:00-21:00. Adm. bygget, Aud.

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

UNIVERSITETET I OSLO

KONTINUASJONSEKSAMEN

Norges teknisk-naturvitenskapelige universitet Institutt for datateknikk og informasjonsvitenskap

UNIVERSITETET I OSLO

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

Eksamensoppgave i TDT4120 Algoritmer og datastrukturer

UNIVERSITETET I OSLO

Algoritmer og datastrukturer Løsningsforslag

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

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

Algoritmer og Datastrukturer

Algoritmer og datastrukturer Eksamen

UNIVERSITETET I OSLO

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

KANDIDATEN MÅ SELV KONTROLLERE AT OPPGAVESETTET ER FULLSTENDIG

EKSAMENSOPPGAVE Bokmål og Nynorsk

EKSAMENSOPPGAVE. Vil det bli gått oppklaringsrunde i eksamenslokalet? Svar: JA / NEI Hvis JA: ca. Kl 10.00

Eksamensoppgave i TDT4120 Algoritmer og datastrukturer

Eksamensoppgave i TDT4120 Algoritmer og datastrukturer

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

PQ: HEAP. Heap. Er disse heap er? Hvordan implementere heap:

UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet

INF1010 Binære søketrær ++

EKSAMENSOPPGAVE. Kalkulator «Huskelapp» -A4 ark med skrift på begge sider. Enkel norsk-engelsk/engelsk-norsk ordbok

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

Transkript:

Fakultet for naturvitenskap og teknologi EKSAMENSOPPGAVE Eksamen i: INF-1101 Datastrukturer og algoritmer Dato: 18.05.2016 Klokkeslett: 09:00 13:00 Sted: Teorifagbygget, hus 3, 3.218 Tillatte hjelpemidler: Ingen Type innføringsark (rute/linje): Antall sider inkl. forside: Kontaktperson under eksamen: 5 Robert Pettersen Telefon/mobil: 47 24 75 52 NB! Det er ikke tillatt å levere inn kladd sammen med besvarelsen Postboks 6050 Langnes, N-9037 Tromsø / 77 64 40 00 / postmottak@uit.no / uit.no

Bokmål Side 2 av 5 sider Eksamen INF-1101 Datastrukturer og algoritmer Vår 2016 Eksamenssettet består av 4 oppgaver. Les oppgaveteksten grundig og disponer tiden slik at du får tid til å svare på alle oppgavene. I noen oppgaver kan det være nødvendig å tolke oppgaveteksten ved å gjøre noen antagelser - gjør i så fall rede for hvilke antagelser du har gjort, men pass på å ikke gjøre antagelser som trivialiserer oppgaven. Der du skal utvikle eller beskrive en algoritme anbefales det at du først beskriver algoritmen på et høyt abstraksjonsnivå, f.eks. med figurer, før du går videre med detaljer og eventuell pseudokode. Dersom det spørres etter en implementasjon i C kreves det ikke 100% syntaktisk korrekt kode. Dersom det spørres etter pseudokode kan du kan også skrive rein C-kode om du ønsker. Dersom du blir bedt om utvikle en algoritme er det implisitt at en algoritme med best mulig kompleksitet er å foretrekke. Husk også at du kan referere tilbake til funksjoner du tidligere har definert. Oppgave 1-25% Gitt to array A og B som begge inneholder N heltall. Du kan anta at et tall ikke forekommer mer enn en gang i hvert array. (a) Skisser i pseudo-kode en funksjon som avgjør hvor mange tall som forekommer i både A og B. (b) Skisser i pseudo-kode en funksjon som avgjør om det finnes en sekvens av 3 etterfølgende heltall som forekommer i både A og B. For eksempel, dersom A inneholder 1, 4, 5, 7, 2 og B inneholder 3, 1, 4, 5, 9, ser vi at sekvensen 1, 4, 5 forekommer i både A og B. INF-1101 Datastrukturer og algoritmer

Bokmål Side 3 av 5 sider Oppgave 2-25% (a) Gitt en heap som inneholder tallene 5, 7, 12, 13, 18, 8, 0. Vis med figur hvordan en slik gyldig heap kan se ut: (1) Representert som et tre. (2) Representert som et array. Merk: du behøver ikke ta hensyn til innsettingsrekkefølge. (b) En prioritetskø ADT kan også implementeres ved hjelp av en binomisk kø ( binomial queue ). Forklar kort hvordan operasjonene insert og delmin utføres på en binomisk kø. INF-1101 Datastrukturer og algoritmer

Bokmål Side 4 av 5 sider Oppgave 3-25% Anta at du har fått i oppgave å lage en SMS meldingstjeneste for en bedrift som tilbyr en web-basert kalendertjeneste til sine kunder: 30 minutter før en avtale i en kundes kalender skal det sendes en SMS med informasjon om avtalen til kunden. Sentralt i implementasjonen av denne SMS tjenesten er en abstrakt datatype (ADT) som orkestrerer når en SMS skal sendes. Anta at følgende funksjoner inngår i ADT grensesnittet: // Registrer ny alarm void insertalarm(void *avtale, int alarmtime); // Returner antall sekunder til første alarm int firstalarm(void); // Fjern og returner første alarm void *removefirstalarm(void); Du kan anta at det eksisterer en funksjon gettimeofday() som returnerer nåværende tid. Videre kan du anta at alarmtime - gettimeofday() gir deg antall sekunder til en SMS skal sendes angående korresponderende avtale. Når en kunde setter inn en ny avtale i sin kalender registreres tidspunktet for sending av SMS via insertalarm(). firstalarm() benyttes for å finne, blant alle registrerte alarmer, antall sekunder til neste SMS skal sendes. removefirstalarm() fjerner og returnerer, blant alle registrerte alarmer, første alarm som skal gå av (alarmtime - gettimeofday() må være mindre eller lik 0 for denne alarmen). Velg en underliggende datastruktur og skisser i pseudo-kode en implementasjon av hver av funksjonene i grensesnittet. INF-1101 Datastrukturer og algoritmer

Bokmål Side 5 av 5 sider Oppgave 4-25% Gitt følgende datastruktur som beskriver en node i et binærtre: typedef s t r u c t node node_t ; s t r u c t node { node_t l e f t ; // V e n s t r e s u b t r e node_t r i g h t ; // Høyre s u b t r e } ; (a) Hva er definisjonen av dybden til et tre? Skriv en rekursiv funksjon i C som beregner dybden i et binærtre, med følgende signatur: // Returner dybden til et binærtre, gitt rota av treet int depth(node_t *root); (b) Skriv en ikke-rekursiv variant av funksjonen i a). pseudokode om ønskelig. Du kan benytte (c) Hva er forskjellen på et binærtre og et binært søketre? Utvid definisjonen av struct node slik at den kan brukes til å representere en node i et binært søketre med heltall som nøkler. (d) Implementer i C eller pseudokode en algoritme for å skrive ut alle nøklene i et binært søketre i motsatt sortert rekkefølge. Anta at nøklene er heltall - utskriften skal altså begynne med det største tallet og avslutte med det minste. Du kan bruke rekursjon om ønskelig. INF-1101 Datastrukturer og algoritmer

Fakultet for naturvitenskap og teknologi EKSAMENSOPPGÅVE Eksamen i: INF-1101 Datastrukturar og algoritmar Dato: 18.05.2016 Klokkeslett: 09:00 13:00 Stad: Teorifagbygget, hus 3, 3.218 Lovlege hjelpemiddel: Ingen Type innføringsark (rute/linje): Antall sider inkl. forside: Kontaktperson under eksamen: 5 Robert Pettersen Telefon/mobil: 47 24 75 52 NB! Det er ikkje lov å levere inn kladd saman med svaret Postboks 6050 Langnes, N-9037 Tromsø / 77 64 40 00 / postmottak@uit.no / uit.no

Nynorsk Side 2 av 5 sider Eksamen INF-1101 Datastrukturar og algoritmar Vår 2016 Eksamenssettet består av 4 oppgåver. Les oppgåveteksten grundig og disponer tida slik at du får tid til å svara på alle oppgåvene. I nokre oppgåver kan det vera naudsynt å tolka oppgåveteksten ved å gjera nokre føresetnader (antakelser) - gjer i så fall greie for kva slags føresetnader du har gjort, men pass på å ikkje gjera føresetnader som trivialiserer oppgåva. Der du skal utvikla eller skildra ein algoritme tilrådast det at du først skildrar algoritmen på eit høgt abstraksjonsnivå, t.d. med figurar, før du går vidare med detaljar og eventuell pseudokode. Dersom det vert spurt etter ein implementasjon i C krev det ikkje 100% syntaktisk korrekt kode. Dersom det vert spurt etter pseudokode kan du òg skriva rein C-kode om du ynskjer. Dersom du vert beden om å utvikla ein algoritme er det implisitt at ein algoritme med best mogleg kompleksitet er å føretrekka. Husk òg at du kan referera attende til funksjonar du tidlegare har definert. Oppgåve 1-25% Gitt to array A og B som begge inneheld N heiltal. Du kan anta at eit tal ikkje finst meir enn ein gong i kvart array. (a) Skisser i pseudo-koden ein funksjon som avgjer kor mange tal som finst i både A og B. (b) Skisser i pseudo-koden ein funksjon som avgjer om det finst ein sekvens av 3 etterfølgjande heiltal som finst i både A og B. Til dømes, dersom A inneheld 1, 4, 5, 7, 2 og B inneheld 3, 1, 4, 5, 9, ser vi at sekvensen 1, 4, 5 finst i både A og B. INF-1101 Datastrukturar og algoritmar

Nynorsk Side 3 av 5 sider Oppgåve 2-25% (a) Gitt ein heap som inneheld tala 5, 7, 12, 13, 18, 8, 0. Vis med figur korleis ein slik gyldig heap kan sjå ut: (1) Representert som eit tre. (2) Representert som eit array. Merk: du treng ikkje ta omsyn til innsetjingsrekkefølgje. (b) Ein prioritetskø ADT kan òg implementerast ved hjelp av ein binomisk kø ( binomial queue ). Forklar kort korleis operasjonane insert og delmin vert utført på ein binomisk kø. INF-1101 Datastrukturar og algoritmar

Nynorsk Side 4 av 5 sider Oppgåve 3-25% Anta at du har fått i oppgåve å laga ei SMS meldingsteneste for eit føretak som tilbyr ei web-basert kalenderteneste til kundane sine: 30 minutt før ein avtale i ein kunde sin kalender skal det sendast ein SMS med informasjon om avtalen til kunden. Sentralt i implementasjonen av denne SMS tenesta er ein abstrakt datatype (ADT) som orkestrerer når ein SMS skal sendast. Anta at følgjande funksjonar inngår i ADT grensesnittet: // Registrer ny alarm void insertalarm(void *avtale, int alarmtime); // Returner mengd sekund til første alarm int firstalarm(void); // Fjern og returner første alarm void *removefirstalarm(void); Du kan anta at det eksisterer ein funksjon gettimeofday() som returnerer noverande tid. Vidare kan du anta at alarmtime - gettimeofday() gjev deg mengd sekund til ein SMS skal sendast andsynes korresponderande avtale. Når ein kunde set inn ein ny avtale i kalenderen sin vert tidspunktet registrert for sending av SMS via insertalarm(). firstalarm() nyttast for å finna, blant alle registrerte alarmar, mengd sekund til neste SMS skal sendast. removefirstalarm() fjernar og returnerer, blant alle registrerte alarmar, første alarm som skal gå av (alarmtime - gettimeofday() må vera mindre eller lik 0 for denne alarmen). Vel ein underliggende datastruktur og skisser i pseudo-kode ein implementasjon av kvar av funksjonane i grensesnittet. INF-1101 Datastrukturar og algoritmar

Nynorsk Side 5 av 5 sider Oppgåve 4-25% Gitt følgjande datastruktur som skildrar ein node i eit binærtre: typedef s t r u c t node node_t ; s t r u c t node { node_t l e f t ; // V e n s t r e s u b t r e node_t r i g h t ; // Høgre s u b t r e } ; (a) Kva er definisjonen av djupna til eit tre? Skriv ein rekursiv funksjon i C som bereknar djupna i eit binærtre, med følgjande signatur: // Returner djupna til eit binærtre, gjeve rota av treet int depth(node_t *root); (b) Skriv ein ikkje-rekursiv variant av funksjonen i a). pseudokode om ynskjeleg. Du kan nytta (c) Kva er skilnaden på eit binærtre og eit binært søketre? Utvid definisjonen av struct node slik at han kan brukast til å representera ein node i eit binært søketre med heiltal som nøklar. (d) Implementer i C eller pseudokode ein algoritme for å skriva ut alle nøklane i eit binært søketre i motsett sortert rekkjefølgje. Anta at nøklane er heiltal - utskriften skal altså byrja med det største talet og avslutta med det minste. Du kan bruka rekursjon om ynskjeleg. INF-1101 Datastrukturar og algoritmar