Container ADT. Sekvenser. int size(); antall elementer i samlingen */ boolean isempty(); true hviss samlingen er tom */

Størrelse: px
Begynne med side:

Download "Container ADT. Sekvenser. int size(); antall elementer i samlingen */ boolean isempty(); true hviss samlingen er tom */"

Transkript

1 Sekvenser Litt om DT-hierarki i JDSL. (Java Data Structures Library) Container DT Iterator Enumeration DT (fra java.util) RankedSequence DT (Også kallt DT Vektor) Position DT PositionalSequence DT (Også kallt DT Liste) Sequence DT Sammenlikning av implementasjoner vha array/lenket liste/2-veis lenket liste Generisk Sortering av Sekvenser Kap unntatt kursorisk , , hele 4 i-2 : H Sekvenser og Posisjoner: /** generisk samling av Objekter * supertype for alle samlinger */ public interface Container { true hviss samlingen er tom */ boolean isempty(); antall elementer i samlingen */ int size(); Container DT package jdsl.simple.api; i-2 : H Sekvenser og Posisjoner: 2

2 DT hierarki burde være slik Container int size(); boolean isempty(); Object front(); Object remove(); void add(object o); adgang kun til første/siste element adgang til n-te/vilkårlig element LiFi PositionalContainer ingen flere operasjoner RankedSequence PositionalSequence Queue Stack Deque Object last(); Object removelast(); void addlast(object o); Sequence i-2 : H Sekvenser og Posisjoner: 3 men i JDSL. er det altså slik package jdsl.simple.api; int size(); boolean isempty(); package jdsl.core.api; java.util.enumeration Container Enumeration elements(); Container newcontainer(); Container Queue Stack PositionalContainer Enumeration positions(); Object replace(position p, Object o); void swap(position p, Position q); Position Deque PositionalSequence RankedSequence Sequence i-2 : H Sekvenser og Posisjoner: 4

3 package jdsl.core.api; Container og Enumeration DT import java.util.enumeration /** generisk samling av Objekter */ public interface Container extends jdsl.simple.container { enumerering av alle elementene fra samlingen */ Enumeration elements(); ny samling av samme type */ Container newcontainer(); package java.util; /** for å traversere en samling en gang */ public interface Enumeration { true hviss flere elementer */ boolean hasmoreelements(); f.eks. for å skrive ut alle elementene fra en instans/objekt av type Container C; Enumeration en = C.elements(); while (en.hasmoreelements()) System.out.println(en.nextElement()); neste element * første kall gir første elementet NoSuchElementException * hvis ikke flere elementer */ Object nextelement(); Det nyere interface Iterator tillater også å fjerne et objekt. i-2 : H Sekvenser og Posisjoner: 5 DT vektor= interface RankedSequence i JDSL package jdsl.simple.api; /** adgang til/fjerning/innsetting av elementer * med vilkårlig rank (ulik Stack og Queue) * Rank angis med et tall <= r < size() */ B C 2 V r Z N public interface RankedSequence extends (jdsl.simple.)container { /** setter inn Objekt o med rank r, andres rank kan endres r et tall: <= r <= size() o Objektet som skal innsettes BoundaryViolationEx om r < eller r > size() /** erstatter Objektet med rank r med et nytt Objekt r et tall: <= r < size() o Objektet som skal innsettes Objektet som ble erstattet BoundaryViolationEx * om r < eller r > size()- */ Object replaceelemtrank(int r, Object o); */ void insertelemtrank(int r, Object o); /** returnerer Objektet med rank r r et tall: <= r < size() Objektet i posisjon r BoundaryViolationEx om r < eller r > size()- */ Object elemtrank(int r); B C 2 O r V r+ Z N+ /** fjerner og returnerer Objektet med rank r r et tall: <= r < size() Objektet som ble fjernet BoundaryViolationEx * hvis r < eller r > size()- */ Object removeelemtrank(int r); B C 2 B C 2 X r V r+ V r Z N+ Z N i-2 : H Sekvenser og Posisjoner: 6

4 Implementasjon av JDSL RankedSequence vha java.util.vector med java.util.vector package java.util; public class Vector { void ensurecapacity( int mincapacity) { void insertelementt( Object o, int i) { void setelementt( Object o, int i) { void removeelementt( int i) { Object elementt(int i) { Object lastelement() { Object firstelement() { int capacity() { int size() { import java.util.vector; public class RSvector implements RankedSequence { private Vector v; public RSvector() { v= new Vector(); public void insertelemtrank(int r, Object o) throws BoundaryViolationException { try{ v.insertelementt(o, r); // sjekker rank r catch(rrayindexoutofboundsexception e) { throw new BoundaryViolationException ; public void elemtrank(int r) { // sjekk rank r return v.elementt(r); public Object removeelemtrank(int r) { //sjekk rank r Object o = v.elementt(r); v.removeelementt(r); return o; public Object replaceelemtrank(int r) { //sjekk rank r Object o = v.elementt(r); v.setelementt(r); return o; public int size() { return v.size(); public boolean isempty() { return v.size() == ; i-2 : H Sekvenser og Posisjoner: 7 Implementasjoner av RankedSequence kompleksitet Vector rray en-veis liste to-veis liste operasjon relativt!!! Container size Vector-op isempty Vector-op RankedSequence elemtrank Vector-op n n insertelemtrank Vector-op n n n removeelemtrank Vector-op n n n replaceelemtrank Vector-op n n i-2 : H Sekvenser og Posisjoner: 8

5 Position DT = abstraksjon av et sted som kan lagre noe n n n n B C Z Position first() Position next(position p) B C Z package jdsl.core.api; public interface Position { Object element(); Container container(); void setelement(object o); n n n n B C Z p p p p Position first(), last() Position next(position p) Position prev(position p) B C Z Rå struktur = aksess-metoder til en samling av Position er l r B C l r Z Position root() Position left(position p) Position right(position p) B C Z i-2 : H Sekvenser og Posisjoner: 9 interface PositionalContainer i JDSL package jdsl.core.api; import java.util.enumeration /** generisk samling av Objekter som aksesseres vha posisjon */ public interface PositionalContainer extends jdsl.api.container { enumerering av posisjonene fra samlingen */ Enumeration positions(); /** bytt Objektene lagret ved argumentposisjoner p, q posisjoner i samlingen InvalidPositionException hvis p eller q ikke er i denne samlingen */ void swap(position p, Position q) throws InvalidPositionException; /** erstatt Objektet ved posisjon p med Objektet o p posisjon der Objektet skal erstattes o det nye Objektet som skal plasseres ved p det gamle Objektet lagret opprinnelig ved p InvalidPositionException hvis p ikke er i denne samlingen */ Object replace(position p, Object o) throws InvalidPositionException; i-2 : H Sekvenser og Posisjoner:

6 package jdsl.core.api; DT List = interface PositionalSequence i JDSL public interface PositionalSequence extends PositionalContainer { // Position aksess implem. posisjonen til første elementet i sekvensen * første elem fåes ved first().element() */ Position first(); O() posisjon til siste elementet i sekvensen */ Position last(); O() v en posisjon i sekvensen posisjon til elementet rett før v i sekvensen BoundaryViolationException om v==first() */ Position before(position v); O() v en posisjon i sekvensen posisjon til elementet rett etter v i sekvensen BoundaryViolationException om v==last() */ Position after(position v); O() // element håndtering posisjon til det innsatte elementet */ Position insertfirst(object e); O() posisjon av det innsatte elementet */ Position insertlast(object e); O() /** sett inn elt o i sekvensen med rank rett foran det i v */ Position insertbefore(position v, Object e); O() /** sett inn elt o i sekvensen med rank rett etter det i v */ Position insertfter(position v, Object e); O() Objektet som ble fjernet */ Object remove(position v); O() // int size(); boolean isempty(); O() // Enumeration elements(); O(n) // Container newcontainer(); O() // Enumeration positions(); O(n) // void swap(position v, Position w); O() // Object replace(position v, Object e); O() implementasjon med krever at en-/to-veis liste Node implements Position array indeks implements Position i-2 : H Sekvenser og Posisjoner: PositionalSequence med to-veis liste public class DLNode implements Position { private DLNode f, n; private Object elem; private Container sam; f elem n public DLNode(Object o, DLNode ff, DLNode nn, Container s) { elem= o; f= ff; n= nn; sam= s; public class PSdl implements PositionalSequence { public Object element() { return elem; public Position last() { return sist; public void setelement(object o) { elem= o; public Position before(position p) { return ((DLNode)p).getPrev() ; public container() { return sam; public DLNode getnext() { return n; public DLNode getprev() { return f; public void setnext(dlnode d) { n= d; public void setprev(dlnode d) { f= d; DataStruktur private DLNode top, sist; // antall elementer private int n; public Position insertfirst(object o) { top= new DLNode(o, null, top, this) ; n++; return top ; public Position insertbefore(position p, Object o) { DLNode pp = (DLNode)p; DLNode ny = new DLNode(o, pp.getprev(), pp, this); n++; return ny;... i-2 : H Sekvenser og Posisjoner: 2

7 PositionalSequence med array (ikke sirkulær) Data Representasjon public class rpos implements Position { private int r; private Object obj; max private Container sam; public rpos( int i, Object o, Container s) { r= i; obj= o; sam= s; public element() { return obj; public rank() { return r; public setelement(object o) { obj= o; public container() { return sam; public setrank(int i) { r= i ; Data Struktur og Invariant private rpos[n] ar; private int max; // størrelse til ar private int f, n; // første neste ledig f =, f <= n isempty hviss f = n ; size = n rpos[fn] er fylt med alle elementene f n 2 public class PosSeqr implements PositionalSequence { public Position last() throws EmptyContainer{ if (n > f) return ar[n ]; else throw new EmptyContainer(); public Position before(position p) throws InvalidPosExc { if ( check(p).rank()==) throw new Exception(); return ar[ check(p).rank() ] ; public Position insertlast(object o) { ar[n] = new rpos(n,o,this); n++; B public Position insertbefore(position p, Object o) throws InvalidPositionExc { int r = check(p).rank(); for (int k= n; k>r; k--) { ar[k]= ar[k ]; ar[k].setrank(k); ar[r]= new rpos(r,o,this); n++ ; return ar[r]; private rpos check(position p) throws InvalidPositionExc { if (! p instanceof rpos) throw new InvalidPositionExc(); rpos a = (rpos)p; if (p.rank() >= && p.rank() <= n) return a; else throw new InvalidPositionExc(); i-2 : H Sekvenser og Posisjoner: 3 insertbefore B 2 C r O remove n max Implementasjoner av PositionalSequence kompleksitet rray en-veis liste to-veis liste operasjon size, isempty newcontainer elements, positions n n n replace, swap first last n before n after insertfirst n/(sirkulær) insertlast n insertbefore n n insertfter n remove n n i-2 : H Sekvenser og Posisjoner: 4

8 size, isempty elements, positions newcontainer replace, swap first, last before, after insertfirst/-last insertbefore/-fter remove PositionalSequence Sequence Position atrank(int r) int rankof(position p) elemtrank replaceelemtrank insertelemtrank removeelemtrank RankedSequence Sequence DT package jdsl.core.api ; public interface Sequence extends PositionalSequence { r posisjon til element med rank BoundaryViolationException Position atrank(int r) p rank til element i posisjonen InvalidPosition int rankof(position p) r o objektet som skal settes posisjonen til det innsatte BoundaryViolationException Position inserttrank(int r, Object o) r objektet som ble BoundaryViolationException Object removetrank(int rank) i-2 : H Sekvenser og Posisjoner: 5 Implementasjoner av Sequence kompleksitet rray en-veis liste to-veis liste operasjon Container size, isempty newcontainer PositionalContainer elements, positions n n n replace, swap PositionalSequence first last n before n after insertfirst n/(sirkulær) insertlast n insertbefore n n insertfter n remove n n Sequence rankof atrank n n inserttrank n (n) (n) removetrank n (n) (n) i-2 : H Sekvenser og Posisjoner: 6

9 Sortering SelectionSort, MergeSort, er en operasjon på strukturer med rekkefølgen på Posisjoner total ordning: for alle Posisjoner p, q : p < q eller q < p eller q = p array, liste, RankedSequence, Sequence DT uttrykker denne totale ordningen med operasjoner before/after videre, må også elementene lagret i strukturen stå i en total ordning: for alle Elementer a, b : a < b eller b < a eller a = b Denne uttrykkes abstrakt (generelt) med forskjellige implementasjoner vil da definere forskjellige totale ordninger for forskjellige type objekter public interface Comparator { true iff a < b; false otherwise */ boolean islessthan (Object a, Object b) true iff a > b; false otherwise */ boolean isgreaterthan (Object a, Object b) true iff a == b; false otherwise */ boolean isequalto (Object a, Object b) true iff a <= b; false otherwise */ boolean islessthanorequalto (Object a, Object b) true iff a >= b; false otherwise */ boolean isgreaterthanorequalto (Object a, Object b) i-2 : H Sekvenser og Posisjoner: 7 for (k=,,2< n) { // n= S.size() int m = k; Generisk seleksjon-sort av Sequence for (j= k+< n) +2++(n-)+n = O(n 2 ) if (S[j] < S[m]) m = j; S.swap( m, k ) en algoritme er generisk hviss alle klasse-parametre er DTer : interface eller Object void SS(Sequence S, Comparator C) { int k, j, min; int n = S.size() ; for (k=; k<n; k++) { min = k ; em = S.atRank(min).element(); for (j= k+; j<n; j++) if (C.isLessThan( S.atRank(j).element(), em )) { min = j; em = S.atRank(min).element(); S.swap( S.atRank(min), S.atRank(k) ) ; kan brukes kun når atrank(r) er O() ; er den O(n) får vi SS = O(n 3 )!!! void SS2(Sequence S, Comparator C) Position k, j, min; k= S.first(); while ( k!= S.last() ) { min = k; j = k; while ( j!= S.last() ) { j = S.after(j); if (C.isLessThan(j.element(), m.element())) min = j; S.swap(min, k) ; k = S.after(k) ; first(), last(r), after(p) kan alltid fåes O() ; SS2 = O(n 2 )!!! i-2 : H Sekvenser og Posisjoner: 8

10 Korrekthet av boble-sortering BubbleSort(int[] ) { // n er største indeks i tabellen INN: k=n : [n+..n] <= r < s <= n & s > n ingen slik s :for (k = n, k >, k--) { LI: <= r < s <= n & s > k [r] <= [s] dvs. [k+n] er sortert og har n-k største elementer INN2: j= : [] er størst i [] 2: for (j =, j < k, j++) { LI2: <= t < j <= n [t] <= [j] dvs. [j] er størst i [j] if ([j] > [j+]) swap([j], [j+]); j =j+: er [j ] størst i [j ]? hvis [j] <= [j+] & LI2 LI2 ellers [j ] = [j] > [j+] = [j ] & LI2 LI2 LI2 : j =j+: <= t < j <= n [t] <= [j ] UTG2: LI2 & j=k gir: <= t < k <= n [t] <= [k] dvs. [k] er størst bland [k] UTG2 & LI gir: [k ] <= [k] <= [k+n] LI : k = k : <= r < s <= n, s > k [r] <= [s] dvs. [k n] er sortert og har n-k største elementer UTG: LI & k= gir <= r < s <= n & s > [r] <= [s] dvs. : [n] er sortert og har n- største elementer, men da har [] minste element <= [r] for < r <= n (spesielt, for r= : [] <= []) i-2 : H Sekvenser og Posisjoner: 2 Generisk boble-sortering av Sequence // n= S.size() for (k=,< n) { S[k-] er sortert og har k minste elem. fra S int m = k; for (j= k+< n) { S[m] er minst i S[kj-] if (S[j] < S[m]) m = j; S[m] er minst i S[kn ] S.swap( m, k ) S[n ] er sortert //og har n minste elem. fra S // n= S.size() for (k=n> ) { S[k+n] er sortert og har n k største elem. fra S for (j= <k) { S[j] er størst i S[j] if (S[j+] < S[j]) S.swap( j, j+ ) S[k] er størst i S[k] S[n] er sortert og har n største elem. fra S void BubbleSort(Sequence S, Comparator C) { Position p, p2 ; for ( k = S.size() ; k>; k--) { p = S.first() ; for ( j = ; j<k; j++) { p2 = S.after(p); if (C.isLessThan(p2.element(), p.element())) S.swap(p,p2); p = a; i-2 : H Sekvenser og Posisjoner: 9

11 jdsl.simple.api.container jdsl.core.api.container java.util.enumeration jdsl.simple.api Stack Queue Deque RankedSequence jdsl.core.api Position PositionalContainer PositionalSequence Sequence implementert med java.util.vector array en-veis liste to-veis liste Oppsummering organisering av DTer hierarki av interface burde avspeile alle relasjoner mellom begrepene daptor pattern: DT-2 kan brukes for en generisk implementasjon av en annen DT- relativ kompleksitet, dvs kompleksitet til DT- avhengig av implementasjon av DT-2 riktige abstraksjoner kan være vanskelig å finne Position forskjellige implementasjoner av samme DT vurdering av implementasjoner opp mot hverandre generisk algoritme bruker kun DTer grensesnitt informasjon om parametre og derfor kan brukes med vilkårlige implementasjoner sorterings algoritmer seleksjon, merge, bobble sortering i-2 : H Sekvenser og Posisjoner: 2

Samlinger, Lister, Sekvenser

Samlinger, Lister, Sekvenser Samlinger, Lister, Sekvenser Litt om ADT-hierarki Container ADT Iterator Enumeration ADT Vektor ADT Position ADT Liste ADT Sekvens ADT Sammenlikning av implementasjoner vha array/lenket liste/2-veis lenket

Detaljer

ADTer: Stabel, Kø og 2-sidig Kø. ADT Kø (eng: queue) ... En tabell-basert kø. Abstrakt Data Type Kø

ADTer: Stabel, Kø og 2-sidig Kø. ADT Kø (eng: queue) ... En tabell-basert kø. Abstrakt Data Type Kø ADTer: Stabel, Kø og 2-sidig Kø Data strukturer, dvs konkrete implementasjoner: Tabell, lenket liste, 2-veis lenket liste. Tidligere har vi sett: Stabel implementert vha tabell. Idag: ADT stabel implementert

Detaljer

Pensum: fra boken (H-03)+ forelesninger

Pensum: fra boken (H-03)+ forelesninger Pensum: fra boken (H-03)+ forelesninger unntatt kursorisk tema KAP. 1 KAP. 2 KAP. 3 JAVA I-110 (ikke gjennomgått) OO + ABSTRAKSJON /GENERISK PROGRAMMERING REKURSJON ALGORITME-TIDSANALYSE; O-NOTASJON KAP.

Detaljer

Pensum: fra boken (H-03)+ forelesninger

Pensum: fra boken (H-03)+ forelesninger Pensum: fra boken (H-03)+ forelesninger unntatt kursorisk tema KAP. 1 KAP. 2 KAP. 3 JAVA I-110 (ikke gjennomgått) OO + ABSTRAKSJON /GENERISK PROGRAMMERING REKURSJON ALGORITME-TIDSANALYSE; O-NOTASJON KAP.

Detaljer

Liste som abstrakt konsept/datatype

Liste 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

Detaljer

Hva er en liste? Hvert element har en forgjenger, unntatt første element i listen. Hvert element har en etterfølger, unntatt siste element i listen

Hva er en liste? Hvert element har en forgjenger, unntatt første element i listen. Hvert element har en etterfølger, unntatt siste element i listen Lister Hva er en liste? Listen er en lineær datastruktur Hvert element har en forgjenger, unntatt første element i listen Hvert element har en etterfølger, unntatt siste element i listen I motsetning til

Detaljer

ADT og OO programmering

ADT og OO programmering ADT og OO programmering I. ADT I JAVA - INTERFACE I.1 grensesnitt skal dokumenteres Javadoc I.2 bruk av interface I.3 implementasjoner av interface II. OO II.1 Arv av type og implementasjon II.2 Abstrakte

Detaljer

Hva er en liste? Hvert element har en forgjenger, unntatt første element i listen. Hvert element har en etterfølger, unntatt siste element i listen

Hva er en liste? Hvert element har en forgjenger, unntatt første element i listen. Hvert element har en etterfølger, unntatt siste element i listen Lister Hva er en liste? Listen er en lineær datastruktur Hvert element har en forgjenger, unntatt første element i listen Hvert element har en etterfølger, unntatt siste element i listen I motsetning til

Detaljer

PrioritetsKøer. i-120 : h98 8. PrioritetsKøer: 1. Samling. n-te/vilkårlig. FiLi. PosSamling. Sequence

PrioritetsKøer. i-120 : h98 8. PrioritetsKøer: 1. Samling. n-te/vilkårlig. FiLi. PosSamling. Sequence PrioritetsKøer I. ADGANG TIL ELEMENTER I EN SAMLING gjennom Position gjennom nøkkel II. TOTALE ORDNINGER OG NØKLER III.PRIORITETSKØ ADT IV. IMPLEMENTASJON MED SEQUENCE ADT V. IMPLEMENTASJON MED HEAP DS

Detaljer

Algoritmer og datastrukturer Kapittel 3 - Delkapittel 3.1

Algoritmer og datastrukturer Kapittel 3 - Delkapittel 3.1 Delkapittel 3.1 Grensesnittet Liste Side 1 av 11 Algoritmer og datastrukturer Kapittel 3 - Delkapittel 3.1 3.1 En beholder 3.1.1 En beholder En pappeske er en beholder En beholder er noe vi kan legge ting

Detaljer

PrioritetsKøer I. ADGANG TIL ELEMENTER I EN SAMLING II. TOTALE ORDNINGER OG NØKLER III.PRIORITETSKØ ADT IV. IMPLEMENTASJON MED SEQUENCE ADT

PrioritetsKøer I. ADGANG TIL ELEMENTER I EN SAMLING II. TOTALE ORDNINGER OG NØKLER III.PRIORITETSKØ ADT IV. IMPLEMENTASJON MED SEQUENCE ADT PrioritetsKøer I. ADGANG TIL ELEMENTER I EN SAMLING gjennom Position gjennom nøkkel II. TOTALE ORDNINGER OG NØKLER III.PRIORITETSKØ ADT PrioritetsKø-Sortering IV. IMPLEMENTASJON MED SEQUENCE ADT V. IMPLEMENTASJON

Detaljer

PG4200 Algoritmer og datastrukturer Forelesning 5 Implementasjon av lister

PG4200 Algoritmer og datastrukturer Forelesning 5 Implementasjon av lister PG4200 Algoritmer og datastrukturer Forelesning 5 Implementasjon av lister Lars Sydnes, NITH 5. februar 2014 I. Implementasjoner Tabell-implementasjon av Stakk Tabellen er den lettest tilgjengelige datastrukturen

Detaljer

Ordbøker I. ORDBOK /PRIORITETSKØ = SEKVENS /LIFI II. IMPLEMENTASJON MED SEQUENCE III.IMPLEMENTASJON MED HASH TABELL

Ordbøker I. ORDBOK /PRIORITETSKØ = SEKVENS /LIFI II. IMPLEMENTASJON MED SEQUENCE III.IMPLEMENTASJON MED HASH TABELL Ordbøker I. ORDBOK /PRIORITETSKØ = SEKVENS /LIFI vilkårlig / minste nøkkel vilkårlig / første Posisjon II. IMPLEMENTASJON MED SEQUENCE III.IMPLEMENTASJON MED HASH TABELL hash funksjoner håndtering av kollisjoner

Detaljer

PRIORITETSKØ. Aksjehandel. Datastruktur for aksjehandel. Nøkler og Totalorden-relasjonen

PRIORITETSKØ. Aksjehandel. Datastruktur for aksjehandel. Nøkler og Totalorden-relasjonen PRIORITETSKØ Applikasjon: aksjehandel ADT (eng: Priority Queue - PQ) Implementering av PQ med sekvenser Sortering vha PQ Mer om sortering Aksjehandel Vi ser på en aksje som kjøpes og selges på børsen.

Detaljer

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

PQ: HEAP. Heap. Er disse heap er? Hvordan implementere heap: PQ: HEAP Ingen sammenheng med memory heap Definisjon og data-invarianter for heap InsertKey og RemoveMin for heap Kompleksitet for operasjoner: O(log n) Prioritetskø impl vha Heap Heap En heap er et binært

Detaljer

INF Notater. Veronika Heimsbakk 10. juni 2012

INF 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

Detaljer

Lenkelister, iteratorer, indre klasser. Repetisjonskurs våren 2018 kristijb

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

Detaljer

INF1010. Stein Michael Storleer (michael) Lenkelister

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

Detaljer

STABLER OG REKURSJON. Abstrakte Data Typer (ADT) Stabler. ADT Stabel

STABLER OG REKURSJON. Abstrakte Data Typer (ADT) Stabler. ADT Stabel STABLER OG REKURSJON Abstrakte Data Typer (ADT) Stabler Eksempel: Aksjeanalyse Unntakshåndtering i Java To stabel-implementasjoner Abstrakte Data Typer (ADT) En Abstrakt Data Type er en abstraksjon av

Detaljer

Array&ArrayList Lagring Liste Klasseparametre Arrayliste Testing Lenkelister

Array&ArrayList Lagring Liste Klasseparametre Arrayliste Testing Lenkelister Dagens tema Lister og generiske klasser, del I Array-er og ArrayList (Big Java 6.1 & 6.8) Ulike lagringsformer (Collection) i Java (Big Java 15.1) Klasser med typeparametre («generiske klasser») (Big Java

Detaljer

Det finnes ingenting. som kan gjøres med interface. men som ikke kan gjøres uten

Det finnes ingenting. som kan gjøres med interface. men som ikke kan gjøres uten Interface, Abstract Class... i-120 : H-98 2a. Abstraksjon i JAVA: 1 Det finnes ingenting som kan gjøres med interface i-120 : H-98 2a. Abstraksjon i JAVA: 2 som kan gjøres med bruk av unntak i-120 : H-98

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

Kapittel 9: Sortering og søking Kort versjon

Kapittel 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

Detaljer

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

EKSAMEN. Algoritmer og datastrukturer. Eksamensoppgaven: Oppgavesettet består av 11 sider inklusiv vedlegg og denne forsiden. EKSAMEN Emnekode: ITF20006 Emne: Algoritmer og datastrukturer Dato: Eksamenstid: 20. mai 2008 kl 09.00 til kl 13.00 Hjelpemidler: 4 A4-sider (2 ark) med valgfritt innhold Kalkulator Faglærer: Mari-Ann

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. Sekvenser (20%)

Oppgave 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

Detaljer

Array&ArrayList Lagring Liste Klasseparametre Arrayliste Testing Lenkelister Videre

Array&ArrayList Lagring Liste Klasseparametre Arrayliste Testing Lenkelister Videre Dagens tema Lister og generiske klasser, del I Array-er og ArrayList (Big Java 6.1 & 6.8) Ulike lagringsformer (Collection) i Java (Big Java 15.1) Klasser med typeparametre («generiske klasser») (Big Java

Detaljer

PG4200 Algoritmer og datastrukturer Forelesning 7

PG4200 Algoritmer og datastrukturer Forelesning 7 PG4200 Algoritmer og datastrukturer Forelesning 7 Lars Sydnes, NITH 19. mars 2014 I. TERMINOLOGI FOR TRÆR TRÆR Lister: Lineære Trær: Hierarkiske Modell / Språk: Bestanddeler: Noder, forbindelser. Forbindelse

Detaljer

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

Hva er en kø? En lineær datastruktur der vi til enhver tid kun har tilgang til elementet som ble lagt inn først Køer Hva er en kø? En lineær datastruktur der vi til enhver tid kun har tilgang til elementet som ble lagt inn først Et nytt element legges alltid til sist i køen Skal vi ta ut et element, tar vi alltid

Detaljer

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO UNIVERSITETET I OSLO Side 1 Det matematisk-naturvitenskapelige fakultet Eksamen i: INF1010 Objektorientert programmering Eksamensdag: Onsdag 4. juni 2014 Tid for eksamen: 9:00-15:00 Oppgavesettet er på

Detaljer

Stabler, Køer og Lister. ADT er

Stabler, Køer og Lister. ADT er Stabler, er og Lister I. STEL OG QUEUE DT I.1 DT I.2 rray implemetasjo I.3 Liket-Liste implemetasjo II. DQUEUE DT III.IMPLEMENTSJON V EN DT MED EN NNEN DT Kap. 3 (kursorisk: 3.1.3, 3.2.3, 3.4; utatt: 3.2.4,

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.

Detaljer

Stack. En enkel, lineær datastruktur

Stack. En enkel, lineær datastruktur Stack En enkel, lineær datastruktur Hva er en stack? En datastruktur der vi til enhver tid kun har tilgang til elementet som ble lagt inn sist Et nytt element legges alltid på toppen av stakken Skal vi

Detaljer

Oppgave 1. Stabler og Køer (30%)

Oppgave 1. Stabler og Køer (30%) Det matematisk-naturvitenskapelige fakultet UNIVERSITETET I BERGEN Eksamen i emnet I 120 - Algoritmer, datastrukturer og programmering Onsdag 13.Desember 2000, kl. 09-15. Ingen hjelpemidler tillatt. Oppgavesettet

Detaljer

Algoritmer og datastrukturer Kapittel 4 - Delkapittel 4.4

Algoritmer og datastrukturer Kapittel 4 - Delkapittel 4.4 Delkapittel 4.4 En prioritetskø Side 1 av 8 Algoritmer og datastrukturer Kapittel 4 - Delkapittel 4.4 4.4 En prioritetskø 4.4.1 Grensesnittet PrioritetsKø En prioritetskø (engelsk: priority queue) er en

Detaljer

1- og 2-veis Innkapsling Java Stabel Kø Prio-kø Iterator. Enveis- og toveislister Innkapsling («boxing») (Big Java 6.8.5)

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

Detaljer

INF1010 - Seminaroppgaver til uke 3

INF1010 - Seminaroppgaver til uke 3 INF1010 - Seminaroppgaver til uke 3 Oppgave 1 I denne oppgaven skal vi lage et klassehiearki av drikker. Alle klassene i hiearkiet skal implementere følgende grensesnitt p u b l i c i n t e r f a c e Drikkbar

Detaljer

Hva er en stack? En lineær datastruktur der vi til enhver tid kun har tilgang til elementet som ble lagt inn sist

Hva er en stack? En lineær datastruktur der vi til enhver tid kun har tilgang til elementet som ble lagt inn sist Stack Hva er en stack? En lineær datastruktur der vi til enhver tid kun har tilgang til elementet som ble lagt inn sist Et nytt element legges alltid på toppen av stakken Skal vi ta ut et element, tar

Detaljer

Hva er en stack? En lineær datastruktur der vi til enhver tid kun har tilgang til elementet som ble lagt inn sist

Hva er en stack? En lineær datastruktur der vi til enhver tid kun har tilgang til elementet som ble lagt inn sist Stack Hva er en stack? En lineær datastruktur der vi til enhver tid kun har tilgang til elementet som ble lagt inn sist Et nytt element legges alltid på toppen av stakken Skal vi ta ut et element, tar

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

1- og 2-veis Innkapsling Java Stabel Kø Prio-kø Iterator. Enveis- og toveislister Innkapsling («boxing») (Big Java 6.8.5)

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

Detaljer

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

Tillatte hjelpemidler: alle skrevne og trykte. Antall sider: 2 (+ 1 side vedlegg, bakerst). Oppgave 1 [25%] Bokmål Det Matematisk-naturvitenskapelege fakultet UNIVERSITETET I BERGEN Eksamen i emnet INF101/INF101F Programmering II Tirsdag 28. september 2010, kl. 09-12. Tillatte hjelpemidler: alle skrevne og trykte.

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

Kapittel 8: Sortering og søking

Kapittel 8: Sortering og søking Kapittel 8: Sortering og søking Forelesningsnotater for: Java som første programmeringsspråk Khalid Azim Mughal, Torill Hamre, Rolf W. Rasmussen Cappelen Akademisk, 2003. ISBN 82-02-23274-0 http://www.ii.uib.no/~khalid/jfps/

Detaljer

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO BOKMÅL Eksamen i : UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet INF1020 Algoritmer og datastrukturer Eksamensdag : Fredag 15. desember 2006 Tid for eksamen : 15.30 18.30 Oppgavesettet

Detaljer

Oppgave 1 a. INF1020 Algoritmer og datastrukturer. Oppgave 1 b

Oppgave 1 a. INF1020 Algoritmer og datastrukturer. Oppgave 1 b Oppgave 1 1 a INF1020 Algoritmer og datastrukturer Forelesning 14: Gjennomgang av eksamen vår 2001 oppgave 1,2,4 Arild Waaler Institutt for informatikk, Universitetet i Oslo Oppgave 1 a Programmer en ikke-rekursiv

Detaljer

Oppsummering. I. HVA VAR DET? I.1 ADTer og Programutvikling I.2 Datastrukturer I.3 Algoritmer II. PENSUM III.EKSAMEN IV. ØNSKER

Oppsummering. I. HVA VAR DET? I.1 ADTer og Programutvikling I.2 Datastrukturer I.3 Algoritmer II. PENSUM III.EKSAMEN IV. ØNSKER Oppsummering I. HVA VAR DET? I.1 ADTer og Programutvikling I.2 Datastrukturer I.3 Algoritmer II. PENSUM III.EKSAMEN IV. ØNSKER i-120 : h-99 11. Oppsummering: 1 Hva oppnår vi med ADT-modul begrepet? 1.

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 Kapittel 4 - Delkapittel 4.3

Algoritmer og datastrukturer Kapittel 4 - Delkapittel 4.3 Delkapittel 4.3 En toveiskø (deque) Side 1 av 5 Algoritmer og datastrukturer Kapittel 4 - Delkapittel 4.3 4.3 En toveiskø (deque) 4.3.1 Grensesnittet Toveiskø En stakk kan godt ses på som en kø der vi

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

INF1010, 21. februar Om å gå gjennom egne beholdere (iteratorer) Stein Gjessing Inst. for Informatikk Universitetet i Oslo

INF1010, 21. februar Om å gå gjennom egne beholdere (iteratorer) Stein Gjessing Inst. for Informatikk Universitetet i Oslo INF1010, 21. februar 2013 Om å gå gjennom egne beholdere (iteratorer) Stein Gjessing Inst. for Informatikk Universitetet i Oslo Ikke noe nytt her From the Java language specification (version 6): 14.14.2

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

NITH PG4200 Algoritmer og datastrukturer Løsningsforslag Eksamen 4.juni 2013

NITH PG4200 Algoritmer og datastrukturer Løsningsforslag Eksamen 4.juni 2013 NITH PG4200 Algoritmer og datastrukturer Løsningsforslag Eksamen 4.juni 20 ette løsningsforslaget er til tider mer detaljert enn det man vil forvente av en eksamensbesvarelse. et er altså ikke et eksempel

Detaljer

Inf 1020 Algoritmer og datastrukturer

Inf 1020 Algoritmer og datastrukturer Inf 1020 Algoritmer og datastrukturer Et av de mest sentrale grunnkursene i informatikkutdanningen... og et av de vanskeligste! De fleste 3000-kursene i informatikk bygger på Inf1020 Kurset hever programmering

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

Læringsmål for forelesningen

Læringsmål for forelesningen Læringsmål for forelesningen Objektorientering Bruk av grensesnitt og implementasjoner i Collection-klasser Java-prog, kap. 14-16 i Big Java Og side 990-997 i Appendix D Collection-rammeverket og iterasjon

Detaljer

Inf1010 oppgavesamling

Inf1010 oppgavesamling Table of ontents Inf1010 oppgavesamling.. 1 Subklasser... 1 Grensesnitt.. 2 Rekursjon... 3 Datastrukturer... 3 GUI. 4 Sortering... 6 Tråder... 6 Inf1010 oppgavesamling Subklasser Klassehirarki for dyr

Detaljer

Kapittel 9: Sortering og søking Kort versjon

Kapittel 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

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

UNIVERSITETET I BERGEN Det matematisk-naturvitenskapelige fakultet

UNIVERSITETET I BERGEN Det matematisk-naturvitenskapelige fakultet UNIVERSITETET I BERGEN Det matematisk-naturvitenskapelige fakultet Eksamen i emnet INF101/INF101-F - Programmering 2 Fredag 10. juni 2011, kl. 09-14 Bokmål Tillatte hjelpemidler: alle skrevne og trykte.

Detaljer

Oppgave 1. Løsningsforslag til eksamensoppgave. ITF20006 Algoritmer og datastrukturer Postorden traversering:

Oppgave 1. Løsningsforslag til eksamensoppgave. ITF20006 Algoritmer og datastrukturer Postorden traversering: Løsningsforslag til eksamensoppgave ITF20006 Algoritmer og datastrukturer 22.05.2007 Oppgave 1 A. Postorden traversering: 1-16-11-2-35-61-81-47-30 B. velformet = sann ; Stack s = new Stack(); while(

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

Løsningsforslag Test 2

Løsningsforslag Test 2 Løsningsforslag Test 2 Oppgave 1.1: Interface definerer et grensesnitt som kan implementeres av flere klasser. Dette gir en standardisert måte å kommunisere med objekter av en eller flere relaterte klasser.

Detaljer

UNIVERSITETET I OSLO

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

Detaljer

Kapittel 9: Sortering og søking Kort versjon

Kapittel 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

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

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

1. Krav til klasseparametre 2. Om å gå gjennom egne beholdere (iteratorer) Stein Gjessing Inst. for Informatikk Universitetet i Oslo

1. Krav til klasseparametre 2. Om å gå gjennom egne beholdere (iteratorer) Stein Gjessing Inst. for Informatikk Universitetet i Oslo INF1010, 26. februar 2014 1. Krav til klasseparametre 2. Om å gå gjennom egne beholdere (iteratorer) Stein Gjessing Inst. for Informatikk Universitetet i Oslo Vi tar utgangspunkt i dette programmet for

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

Kapittel 9: Sortering og søking Kort versjon

Kapittel 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

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

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

Kapittel 8: Sortering og søking INF100

Kapittel 8: Sortering og søking INF100 Forelesningsnotater for: Kapittel 8: Sortering og søking INF100 Java som første programmeringsspråk Khalid Azim Mughal, Torill Hamre, Rolf W. Rasmussen Cappelen Akademisk, 2003. ISBN 82-02-23274-0 http://www.ii.uib.no/~khalid/jfps/

Detaljer

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

Hva er en kø? En lineær datastruktur der vi til enhver tid kun har tilgang til elementet som ble lagt inn først Køer Hva er en kø? En lineær datastruktur der vi til enhver tid kun har tilgang til elementet som ble lagt inn først Et nytt element legges alltid til sist i køen Skal vi ta ut et element, tar vi alltid

Detaljer

INF1010. grensesni-et Comparable<T> grensesni-et Iterable<T> rekursjon

INF1010. grensesni-et Comparable<T> grensesni-et Iterable<T> rekursjon INF1010 grensesni-et Comparable grensesni-et Iterable rekursjon Tenk på hvordan en for- løkke «går igjennom» alle objektene i en array Iterator miniterator Object next() Iterator miniterator = new

Detaljer

Algoritmer og datastrukturer Kapittel 11 - Delkapittel 11.2

Algoritmer og datastrukturer Kapittel 11 - Delkapittel 11.2 Algoritmer og datastrukturer Kapittel 11 - Delkapittel 11.2 11.2 Korteste vei i en graf 11.2.1 Dijkstras metode En graf er et system med noder og kanter mellom noder. Grafen kalles rettet Notasjon Verdien

Detaljer

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

Hva er en kø? En lineær datastruktur der vi til enhver tid kun har tilgang til elementet som ble lagt inn først Køer Hva er en kø? En lineær datastruktur der vi til enhver tid kun har tilgang til elementet som ble lagt inn først Et nytt element legges alltid til sist i køen Skal vi ta ut et element, tar vi alltid

Detaljer

import java.io.*; import java.util.*; import javagently.text;

import java.io.*; import java.util.*; import javagently.text; //-------------------------------------------------------- // // Fil: Oppg1.java - // løser oppgave 1 i eksamensettet for in105 - v99 // //-------------------------------------------------------- import

Detaljer

GRAF-TRAVERSERING. Hvordan utforske en labyrint uten å gå seg vill. Rekkefølge på kanter: Dybde-Først Søk A B C D E F G H I J K L M N O P

GRAF-TRAVERSERING. Hvordan utforske en labyrint uten å gå seg vill. Rekkefølge på kanter: Dybde-Først Søk A B C D E F G H I J K L M N O P R-TRVRSRIN ybde-ørst Søk redde-ørst Søk ruk av MetodeMal som designmønster (Template Method Pattern H Hvordan utforske en labyrint uten å gå seg vill. t dybde-først søk (S) i en urettet graf er som å vandre

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

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

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

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

EKSAMEN. Algoritmer og datastrukturer. Eksamensoppgaven: Oppgavesettet består av 10 sider inklusiv vedlegg og denne forsiden. EKSAMEN Emnekode: ITF20006 Emne: Algoritmer og datastrukturer Dato: Eksamenstid: 22. mai 2007 kl 09.00 til kl 13.00 Hjelpemidler: 4 A4-ark med valgfritt innhold på begge sider. Faglærer: Mari-Ann Akerjord

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

Kapittel 8: Sortering og søking INF100

Kapittel 8: Sortering og søking INF100 Forelesningsnotater for: Kapittel 8: Sortering og søking INF100 Java som første programmeringsspråk Khalid Azim Mughal, Torill Hamre, Rolf W. Rasmussen Cappelen Akademisk, 2003. ISBN 82-02-23274-0 http://www.ii.uib.no/~khalid/jfps/

Detaljer

Repitisjonskurs. Arv, Subklasser og Grensesnitt

Repitisjonskurs. Arv, Subklasser og Grensesnitt Repitisjonskurs Arv, Subklasser og Grensesnitt Subklasser Klasser i OO-programmering representerer typer av objekter som deler et sett med egenskaper. En subklasse har egenskapene til en klasse + ett sett

Detaljer

Inf1010 oppgavesamling

Inf1010 oppgavesamling Table of ontents Inf1010 oppgavesamling.. 1 Subklasser... 1 Grensesnitt.. 2 Rekursjon... 3 Datastrukturer... 3 GUI. 4 Sortering... 6 Tråder... 6 Inf1010 oppgavesamling Subklasser Klassehirarki for dyr

Detaljer

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

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

Detaljer

Algoritmer og datastrukturer Kapittel 3 - Delkapittel 3.3

Algoritmer og datastrukturer Kapittel 3 - Delkapittel 3.3 Delkapittel 3.3 En lenket liste side 1 av 12 Algoritmer og datastrukturer Kapittel 3 - Delkapittel 3.3 3.3 En lenket liste 3.3.1 Lenket liste med noder En lenket liste (eller en pekerkjede som det også

Detaljer

Algoritmer og datastrukturer E Løkker i Java

Algoritmer og datastrukturer E Løkker i Java Vedlegg E Løkker i Java Side 1 av 6 Algoritmer og datastrukturer E Løkker i Java E Løkker i Java E.1 For-løkker En for-løkke består av de fire delene initialisering, betingelse, oppdatering og kropp (eng:

Detaljer

NORGES INFORMASJONSTEKNOLOGISKE HØGSKOLE PG4200 Algoritmer og datastrukturer

NORGES INFORMASJONSTEKNOLOGISKE HØGSKOLE PG4200 Algoritmer og datastrukturer Oppgavesettet består av 7 (syv) sider. NORGES INFORMASJONSTEKNOLOGISKE HØGSKOLE PG4200 Algoritmer og datastrukturer Tillatte hjelpemidler: Ingen Side av 7 Varighet: 3 timer Dato:.august 203 Fagansvarlig:

Detaljer

EKSAMEN I FAG TDT4100 Objekt-orientert programmering. Fredag 3. juni 2005 KL. 09.00 13.00

EKSAMEN I FAG TDT4100 Objekt-orientert programmering. Fredag 3. juni 2005 KL. 09.00 13.00 Side 1 av 6 NTNU Norges teknisk-naturvitenskapelige universitet BOKMÅL Fakultet for informasjonsteknologi, matematikk og elektroteknikk Institutt for datateknikk og informasjonsvitenskap EKSAMEN I FAG

Detaljer

Post-it spørsmål fra timen (Arv og subklasser)

Post-it spørsmål fra timen (Arv og subklasser) Post-it spørsmål fra timen 30.01 (Arv og subklasser) Tegning Spørsmål: Skjønte ikke tegningene Hater tegningene. Lær meg å tegne. Mvh frustrert elev. Spørsmål: Datastruktur-tegning, og hvor mye detaljer

Detaljer

Kap.8 Sortering og søking sist oppdatert 16.03

Kap.8 Sortering og søking sist oppdatert 16.03 Kap.8 Sortering og søking sist oppdatert 16.03 Del 1 Søking - lineær søking m/u sorterte elementer - binærsøking - analyse Del 2 Sortering - gamle sorteringsmetoder fra i høst - nye -analyse Copyright

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

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

TOD063 Datastrukturer og algoritmer

TOD063 Datastrukturer og algoritmer TOD063 Datastrukturer og algoritmer Øving : 3 Utlevert : Uke 7 Innleveringsfrist : 26. februar 2010 Klasse : 1 Data og 1 Informasjonsteknologi Gruppearbeid: 2-3 personer pr. gruppe. Oppgave 1 Vi skal lage

Detaljer

INF1000 HashMap. Marit Nybakken marnybak@ifi.uio.no 2. november 2003

INF1000 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

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