Fagnr: A. Ant. vedlegg: 1 (2 sider)

Like dokumenter
Algoritmer og datastrukturer Eksamen 22. februar 2011

Fagnr: A. Ant. vedlegg: 1 (2 sider)

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

Fagnr: SO 131 A. Ant. vedlegg: 1 (2 sider)

Algoritmer og datastrukturer Eksamen

Algoritmer og datastrukturer Eksamen

Algoritmer og datastrukturer Eksamen

~ta11 oppgaver: 4. Nle skriftlige hjelpemidler-både trykte og håndskrevne, er tillatt

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

Algoritmer og datastrukturer Eksamen

Algoritmer og datastrukturer Eksamen

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

Algoritmer og datastrukturer Kapittel 9 - Delkapittel 9.2

Algoritmer og Datastrukturer

Algoritmer og datastrukturer Løsningsforslag

Algoritmer og datastrukturer Kapittel 9 - Delkapittel 9.1

EKSAMEN med løsningsforslag

Algoritmer og datastrukturer Løsningsforslag

Algoritmer og datastrukturer Kapittel 9 Delkapittel 9.2

EKSAMEN. Algoritmer og datastrukturer

INF1010 Binære søketrær ++

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

Algoritmer og datastrukturer Kapittel 9 - Delkapittel 9.2

Algoritmer og datastrukturer Løsningsforslag

UNIVERSITETET I OSLO

Algoritmer og datastrukturer Løsningsforslag

Algoritmer og datastrukturer Kapittel 4 - Delkapittel 4.3

Algoritmer og datastrukturer Kapittel 4 - Delkapittel 4.4

Algoritmer og datastrukturer Kapittel 2 - Delkapittel 2.1

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

UNIVERSITETET I OSLO

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

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

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

UNIVERSITETET I OSLO

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

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

Algoritmer og Datastrukturer

Algoritmer og datastrukturer Kapittel 3 - Delkapittel 3.1

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

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

UNIVERSITETET I OSLO

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

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

UNIVERSITETET I OSLO

Algoritmer og datastrukturer Vedlegg A.2 BitOutputStream

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO

EKSAMEN. Emne: Algoritmer og datastrukturer

Algoritmer og Datastrukturer

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

INF2220: Forelesning 2

København 20 Stockholm

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

Algoritmer og datastrukturer Kapittel 11 - Delkapittel 11.2

UNIVERSITETET I OSLO

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

Algoritmer og datastrukturer Kapittel 5 - Delkapittel 5.1

INF1010 Sortering. Marit Nybakken 1. mars 2004

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

OPPGAVE 5b og 8b Java Kode

Algoritmer og datastrukturer Kapittel 1 - Delkapittel 1.3

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet

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

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

UNIVERSITETET I OSLO

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

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

Algoritmer og Datastrukturer IAI 21899

UNIVERSITETET I OSLO

Obligatorisk oppgave 1 INF1020 h2005

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

Løsningsforslag til INF110 h2001

UNIVERSITETET I OSLO

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

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

Binære trær: Noen algoritmer og anvendelser

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

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:

INF1010 siste begreper før oblig 2

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

IN Algoritmer og datastrukturer

LO118D Forelesning 12 (DM)

Seminaroppgaver IN1010, uke 2

Algoritmer og datastrukturer Kapittel 11 Delkapittel 11.2

INF januar 2015 Stein Michael Storleer (michael) Lenkelister

Informasjon Prøveeksamen i IN1000 høsten 2018

Eksamensoppgaver 2014

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

Lars Vidar Magnusson

Algoritmer og Datastrukturer

INF1000 Eksamen 2014 (modifisert)

Algoritmer og datastrukturer Binære søketrær

Løsningsforslag EKSAMEN

INF Algoritmer og datastrukturer

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

Algoritmer og datastrukturer Kapittel 5 - Delkapittel 5.4

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

Transkript:

Fag: Algoritmer datastrukturer og Fagnr: 50 131 A Faglig ansv.: Ulf Uttersrud Sensor: Tor Lønnestad Ant. sider 3 Ant. oppgaver: 3 Ant. vedlegg: 1 (2 sider) Dato: 15.02.2002 Eksamenstid 9-14 c Råd og tips: Bruk ikke for lang tid p et punkt i en oppgave hvis du ikke far det til innen rimelig tid. G isteden videre til neste punkt. Hvis du i et senere punkt f r bruk for det du skulle ha laget i et tidligere punkt, s kan du fritt bruke resultatet som om det var løst og at løsningen virker slik som krevd i oppgaven. Prøv alle punktene. Det er ikke lutt la noen punkter sta helt blanke. Til og med det demonstrere i en eller annen form at du har forststt hva det spørres etter og/eller at du har en ide om hvordan det kunne løses, er bedre enn ingenting. Det er hel/er ikke slik at et senere punkt i en oppgave nødvendigvis er vanskeligere enn et tidlig punkt. Alle de lo bokstav punktene teller IIktl Hvis du skulle trenge en datastruktur eller en metode som hører til java. uti! eller er laget i undervisningen, kan du fritt bruke det uten mtte lage det selv. Oppgave 1 I vedlegget er det satt opp et "skjelett" for c/ass Mengde. En mengde skal her være en mengde av heltall ( int), og den skal internt være organisert som en sortert enkellenket liste uten duplikater. Det er satt opp en ferdigkodet indre nodeklasse for dette formålet. Det skal ikke legges inn flere variabler (instans- og klassevariabler) i c/ass Mengde og c/ass Node enn de som allerede ligger der. Flg. programbit lager den utskriften som er angitt nedenfor: int[] a - 3,9,7,2,5,3,S,lO} Menqde A - new Menqde(a); A.skriv() ; Ilutskrift: 2,3,5,7,9,lO} Her er (se vedlegget) konstruktøren Mengde(int[] a) og metoden vold skr/v() brukt. Konstruktøren skal lage en mengde ved hjelp av tallene fra en heltallstabeli og skriv-metoden skriver mengden ut p skjermen. A. Lag kode for metoden void skriv() slik at et kall pa den gir en utskrift av samme type som antydet ovenfor. Hvis mengden er tom skal det skrives ut J. B. Lag kode for konstruktøren Mengde(int[] a) slik at den lager en enkellenket sortert liste uten duplikater p grunnlag av elementene (tallene) fra tabellen a. Her bør du, der det er aktuelt, benytte deg av ferdige klasser/metoder. -1-

C. Gitt flg. programbit: int[] a - (3,9,7,2,5,3,5,lO}; int [] b (7,8, 9, 1,2, 3) ; int[] c - 4,5,6}; Mengde Mengde Mengde A = new Mengde(a); B = new Mengde(b); C = new Mengde(c); Mengde. SI System. 0\ Mengde. SI.tt(A,B).skriv(); :.print(" ");.tt(b,c).skriv(); /utskrift: (2,3,7,9) Metoden (se vedlegget) static public Mengde snitt(mengde A, Mengde 8) skal lage snittet av mengdene A og 8, d.v.s. den skal lage (og returnere) en ny mengde som bestr av de elementene (tallene) som A og 8 har felles. Mengdene A og 8 skal være som de var etter et kall p snittmetoden. Lag kode for denne metoden. Oppgave 2 A. Nedenfor er det satt opp et Huffmantre for tegnene A, B, C, D, E, F, G og H. Finn en frekvensfordeling for disse 8 tegnene som fører til at Huffmans metode gir nettopp dette treet.?, ;/ H,.\ I.,;( D c 'e B. Legg flg. verdier fortløpende inn i et ps forhsnd tomt rød-svart tre: 12, 2, 7, 10, 8, 15, 13,14. Tegn det ferdige treet. Oppgave 3 En node i et binærtre kalles venstreorientert hvis antall noder i nodens venstre subtre er større enn eller lik antall noder i nodens høyre subtre. Et subtre kan være tomt. Et tomt tre har O noder. Et binærtre kalles venstreorientert hvis hver node i treet er venstreorientert. Spesielt sier vi at et tomt tre er venstreorientert. Et binærtre kalles et maksimumstre enn eller lik foreidemodens verdi. hvis hver node (unntatt rotnoden) har en verdi som er mindre I vedlegget er det satt opp et "skjelett" for c/ass VMBinTre - et venstreorientert maksimumstre. 2,-

Klassen har en privat indre c/ass Node med ferdige konstruktører. I nodeklassen er det i tillegg til de vanlige variablene, en antall-variabel som skal inneholde som verdi antallet noder i det treet/subtreet som har denne noden som rotnode. Det skal ikke legges inn flere variabler (instans- og klassevariabler) i c/ass VMBinTre og c/ass Node enn de som allerede ligger der. Et venstreorientert maksimumstre brukes for implementere en prioritetskø. (OBS: Dette er ikke det samme som en binærheap). Fordelen er at to slike trær kan flettes sammen p en effektiv måte, d.v.s. med orden log2 n + log2 m hvis trærne har henholdsvis n og m noder. Nedenfor er det satt opp et eksempel p et venstreorientert maksimumstre med 15 noder: Nr en ny verdi skal legges inn i treet m vi passe p at treet opprettholdes som et venstreorientert maksimumstre. Vi kan se på treets høyre kant (på tegningen er det de tre nodene med verdier 20, 15 og 13) som en avtagende sortert liste (bundet sammen av høyre-pekere). En ny verdi legges inn (i en ny node med null som venstre-peker) p rett sortert plass i denne "listen". Dermed blir treet bevart som maksimumstre. Men fra og med den nye noden og oppover til roten, vil en eller flere noder ikke være venstreorientert. Dette repareres ved at venstre og høyre subtre bytter plass i slike noder. Variablen antall må ha rett verdi i hver node etter innleggingen. A. 1, 2. 3. Tegn treet (figuren over) og skriv opp ved siden av hver node det antallet noder det er i treetjsubtreet som har denne noden som rotnode (d.v.s. verdien til variablen antall). Skriv opp treets verdier i preorden. legg inn verdiene 14, 12 og 17 (i den gitte rekkefølgen) inn i treet og tegn deretter treet. B. I "skjelettet" av klassen (se vedlegget) er metodene Objectkikk(), intantall() og boo/ean tom() satt opp. Metoden Object kikk() skal returnere (og ikke fjerne) den største verdien i treet, int antall () skal returnere antallet noder i treet og boo/ean tom() skal returnere treets tilstand (et tomt tre eller ikke). Lag kode for disse tre metodene. C. Hjelpemetoden (se vedlegget) void byttbam(node p) skal bytte om p de to bamajsubtræme til noden p. D.v.s. venstre subtre blir høyre subtre og omvendt. Lag kode for denne metoden. D. Metoden boolean venstreorientelt() (se vedlegget) skal returnere true hvis treet er venstreorientert og false ellers. Metoden boolean makstre() (se vedlegget) skal returnere true hvis treet et maksimumstre og false ellers. Du skal kode en av disse to metodene. Du bestemmer selv hvilken. E. Metoden void legglnn(object verdi) (se vedlegget) skal legge inn en verdi i treet slik at det opprettholdes som et venstreorientert maksimumstre. Se beskrivelsen ovenfor. Lag kode for denne metoden. Slutt pl oppgavesettet! ':i- -3-

Vedlegg til SO131A Algoritmer og datastrukturer 15.02.2002 public class Mengde stetic private class Node II en indre nodeklasse l int element; I/et heltall Node neste; II peker til neste node i pekerkjeden public Node(int elem, Node n) II konstruktør element = elemi neste. n } Instansvariabellt/ff/tllll! private fil II Node hode; Konstruktøreillf/..1.1I-./1/.11 public Mengde) hode = null; public Menqde(int(t.> I kode mangler - 6kal lages! Offentlige metoder Y/lltflt public boolean tom() return hode -- null; public void skriv() l Jl kode mangler - kal lages! static public Mengde snitt(mengde A, Mengde AJ Fl kode mangler - skal lages! / slutt pl class Mengde public class VMBinTre f static.. private class Node '/ en indre nodeklasse Object verdi; II nødens verdi int antall; II antall nøder Node venstre; II peker til venstre barn Node høyre; II peker til høyre barn public Node(Object verdi, int ant) I1 konstruktør thia.verdi - verdi; antall - ant; venstre - høyre - null; -1.

public Node(Opject verdi, int ant, Node v, Node h) / konstruktør this.verdi = verdi; antall - ant; venstre-v; høyre - h; / / slutt pd class Node.lllil In.stan.svari.abler Iff/(Hf!!lJ private Node rot; I1 er til treet$ rot pritate Comparator; I1 en komparator IIIII Private hjelpemetoder ffl..c ff/i I. c static private void byttbarn(node p) II Kode mangler - skal lages! } Ill. Konstruktør for class VHBinTre ////1 I lill!.. public VMBinTre (Comparator c) rot - null; this.c - c; IIIII Ott'entlige metoder 'II(II/ public void legqlnn(object verdi I. Kode mangler -.kal lages! public Object kikk) t Kode mangler - økal lages! public Object taut( / Kode mangler - skal i.kk. lages! public int antall() / Kode mangler - økal l.ges! public boolean tom () I1 Kode mangler - skal lages! public boolean venstreorientert() II Kode mangler - skal lages! public boolean makstre ( ) Kode mangler -.kal 1.98.1 6lutt pa class VHBinTre Slutt p vedlegget -l

From: Organization: To: Date sent: Subject: Priority: "Helium Bente" <Bente.Hellum@iu.hio.no> Oslo College Faculty of Engineering agneter@iu.hio.no Fri, 19 Apr 2002 09:51 :27 +0200 (Fwd) bokkjøp normal From: Forwarded message Helium follows Bente <benteh@ca30fag.iu.hio.no> To: agneter@iu.hio.no Subject: Date sent: bokkjøp Wed, 17 Apr 2002 13:39:12 +0200 Hei Agnete Kan du prøve å skaffe meg "answer manual" til "Environmental chemisty" av Stanley Manahan. (Det er den siste boka du kjøpte for meg) Jeg burde vel få den gratis dersom jeg bruker boken i undervisningen! Nettsted for distribusjon av boka er her:. http://www.amazon.com/exec/obidos/asin/1566704928/qid=1 0190 43355/sr= 1-1 /ref=sr 1 1/102-4180897 -4564939 Trenger jeg underskrift fra Sturla får jeg vel få det! Vennlig End hilsen of forwarded message Bente.Hellum@iu.hio.no http://www.iu.hio.no/-benteh/ Tlf 22453346 Reenaas Agnete --1 -- Fri, 19 Apr 2002 09:54:35