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

Størrelse: px
Begynne med side:

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

Transkript

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

2 public void skrivutmeg ( ) { System. out. println (navn + " er venn med " + minbestevennheter ( ) ) ; public void skrivutallt ( ) { skrivutmeg ( ) ; i f ( hentbestevenn ( )!= null ) hentbestevenn ( ). skrivutallt ( ) ; michael@ifi.uio.no INF april 2013 (uke 16) 2

3 null class ListeElement { Object data ; ListeElement neste ; public void skrivutmegogresten ( ) { skrivutmeg ( ) ; i f ( neste!= null ) neste. skrivutmegogresten ( ) ;... michael@ifi.uio.no INF april 2013 (uke 16) 3

4 null class ListeElement { Object data ; ListeElement neste ; public void skrivutmegogresten ( ) { skrivutmeg ( ) ; i f ( neste!= null ) neste. skrivutmegogresten ( ) ;... michael@ifi.uio.no INF april 2013 (uke 16) 4

5 null class ListeElement { Object data ; ListeElement neste ; public void skrivutmegogresten ( ) { skrivutmeg ( ) ; i f ( neste!= null ) neste. skrivutmegogresten ( ) ;... michael@ifi.uio.no INF april 2013 (uke 16) 5

6 null class ListeElement { Object data ; ListeElement neste ; public void skrivutmegogresten ( ) { skrivutmeg ( ) ; i f ( neste!= null ) neste. skrivutmegogresten ( ) ;... michael@ifi.uio.no INF april 2013 (uke 16) 6

7 null class ListeElement { Object data ; ListeElement neste ; public void skrivutmegogresten ( ) { skrivutmeg ( ) ; i f ( neste!= null ) neste. skrivutmegogresten ( ) ;... michael@ifi.uio.no INF april 2013 (uke 16) 7

8 null class ListeElement { Object data ; ListeElement neste ; public void skrivutmegogresten ( ) { skrivutmeg ( ) ; i f ( neste!= null ) neste. skrivutmegogresten ( ) ;... michael@ifi.uio.no INF april 2013 (uke 16) 8

9 null class ListeElement { Object data ; ListeElement neste ; public void skrivutmegogresten ( ) { skrivutmeg ( ) ; i f ( neste!= null ) neste. skrivutmegogresten ( ) ;... michael@ifi.uio.no INF april 2013 (uke 16) 9

10 null class ListeElement { Object data ; ListeElement neste ; public void skrivutmegogresten ( ) { skrivutmeg ( ) ; i f ( neste!= null ) neste. skrivutmegogresten ( ) ;... michael@ifi.uio.no INF april 2013 (uke 16) 10

11 null class ListeElement { Object data ; ListeElement neste ; public void skrivutmegogresten ( ) { skrivutmeg ( ) ; i f ( neste!= null ) neste. skrivutmegogresten ( ) ;... michael@ifi.uio.no INF april 2013 (uke 16) 11

12 INF april 2013 (uke 16) 12

13 null class ListeElement { Object data ; ListeElement neste ; public void skrivutmegogresten ( ) { i f ( neste!= null ) neste. skrivutmegogresten ( ) ; skrivutmeg ( ) ;... michael@ifi.uio.no INF april 2013 (uke 16) 13

14 null class ListeElement { Object data ; ListeElement neste ; public void skrivutmegogresten ( ) { i f ( neste!= null ) neste. skrivutmegogresten ( ) ; skrivutmeg ( ) ;... michael@ifi.uio.no INF april 2013 (uke 16) 14

15 null class ListeElement { Object data ; ListeElement neste ; public void skrivutmegogresten ( ) { i f ( neste!= null ) neste. skrivutmegogresten ( ) ; skrivutmeg ( ) ;... michael@ifi.uio.no INF april 2013 (uke 16) 15

16 null class ListeElement { Object data ; ListeElement neste ; public void skrivutmegogresten ( ) { i f ( neste!= null ) neste. skrivutmegogresten ( ) ; skrivutmeg ( ) ;... michael@ifi.uio.no INF april 2013 (uke 16) 16

17 null class ListeElement { Object data ; ListeElement neste ; public void skrivutmegogresten ( ) { i f ( neste!= null ) neste. skrivutmegogresten ( ) ; skrivutmeg ( ) ;... michael@ifi.uio.no INF april 2013 (uke 16) 17

18 null class ListeElement { Object data ; ListeElement neste ; public void skrivutmegogresten ( ) { i f ( neste!= null ) neste. skrivutmegogresten ( ) ; skrivutmeg ( ) ;... michael@ifi.uio.no INF april 2013 (uke 16) 18

19 null class ListeElement { Object data ; ListeElement neste ; public void skrivutmegogresten ( ) { i f ( neste!= null ) neste. skrivutmegogresten ( ) ; skrivutmeg ( ) ;... michael@ifi.uio.no INF april 2013 (uke 16) 19

20 null class ListeElement { Object data ; ListeElement neste ; public void skrivutmegogresten ( ) { i f ( neste!= null ) neste. skrivutmegogresten ( ) ; skrivutmeg ( ) ;... michael@ifi.uio.no INF april 2013 (uke 16) 20

21 null class ListeElement { Object data ; ListeElement neste ; public void skrivutmegogresten ( ) { i f ( neste!= null ) neste. skrivutmegogresten ( ) ; skrivutmeg ( ) ;... michael@ifi.uio.no INF april 2013 (uke 16) 21

22 class ListeElement { Object data ; ListeElement neste ; public void settinnsist ( ListeElement ny) { i f ( neste == null ) neste = ny; else neste. settinnsist ( ny ) ; michael@ifi.uio.no INF april 2013 (uke 16) 22

23 Eksempler på enkle rekursive metoder: Finne maks- eller minimumsverdier skrive ut / traversere hele lista gjøre endringer i hele datastrukturen for utvalgte objekter michael@ifi.uio.no INF april 2013 (uke 16) 23

24 hvorfor er lenkelister en rekursiv datastruktur? er sudokubrettet en lenkeliste? hvilke invariante tilstandspåstander i en lenkeliste må holde for at vi kan programmere rekursivt? Forslag: alle listeelementer har en og bare en nestepeker ingen nestepekere peker på førsteelementet alle andre elementer blir pekt på av en og bare en nestepeker en og bare en nestepeker er null (i siste element) michael@ifi.uio.no INF april 2013 (uke 16) 24

25 Hva er et binærtre? INF april 2013 (uke 16) 25

26 INF april 2013 (uke 16) 26

27 INF april 2013 (uke 16) 27

28 INF april 2013 (uke 16) 28

29 INF april 2013 (uke 16) 29

30 michael@ifi.uio.no INF april 2013 (uke 16) 30

31 michael@ifi.uio.no INF april 2013 (uke 16) 31

32 rot subtre (barn) dybde (høyde) michael@ifi.uio.no INF april 2013 (uke 16) 32

33 michael@ifi.uio.no INF april 2013 (uke 16) 33

34 Node venstre int 7 verdi Node høyre michael@ifi.uio.no INF april 2013 (uke 16) 34

35 Node venstre int 7 verdi Node høyre class Node { int verdi ; // representerer sorteringskriteriet Node venstre ; // peker til subtreet til venstre Node høyre ; // peker til subtreet til høyre Node ( int i ) { verdi = i ; michael@ifi.uio.no INF april 2013 (uke 16) 35

36 settinnnode( Node ny ) Node venstre int 7 verdi Node høyre class Node { int verdi ; Node venstre, høyre ;... public void settinnnode ( Node ny ) { i f ( venstre == null ) venstre = ny; else venstre. settinnnode (ny ) ; michael@ifi.uio.no INF april 2013 (uke 16) 36

37 settinnnode( Node ny ) Node venstre int 7 verdi Node høyre class Node { int verdi ; Node venstre, høyre ;... public void settinnnode ( Node ny ) { i f ( venstre == null ) venstre = ny; else i f ( høyre == null ) høyre = ny; else venstre. settinnnode (ny ) ; michael@ifi.uio.no INF april 2013 (uke 16) 37

38 settinnnode( Node ny ) Node venstre int 7 verdi Node høyre class Node { int verdi ; Node venstre, høyre ;... public void settinnnode ( Node ny ) { i f (ny. verdi > verdi ) <sett inn t i l høyre> else <sett inn t i l venstre> michael@ifi.uio.no INF april 2013 (uke 16) 38

39 settinnnode( Node ny ) Node venstre int 7 verdi Node høyre public void settinnnode ( Node ny ) { i f (ny. verdi > verdi ) i f ( høyre == null ) høyre = ny; else høyre. settinnnode (ny ) ; else i f ( venstre == null ) venstre = ny; else venstre. settinnnode (ny ) ; michael@ifi.uio.no INF april 2013 (uke 16) 39

40 void leggtiltre(node<ord> inn) Node<Ord> finnidenneellerunder(node<ord> likdenne) void skrivut() Sterkt forenklet: Node<Ord> venstre Ord denne Node<Ord> høyre kryss int compareto(ord o) void skrivut() kryss String ordet INF april 2013 (uke 16) 40

41 Klassen Node<T> class Node <T extends BTNodeRolle <T>> { Node<T> venstre, høyre ; T denne; Node (T t ) { denne = t ; void leggtiltre (Node <T> inn ) Node<T> finnidenneellerunder (Node <T> likdenne ) void skrivut ( ) michael@ifi.uio.no INF april 2013 (uke 16) 41

42 interface BTNodeRolle <T>{ int compareto(t e ) ; void skrivut ( ) ; class Node <T extends BTNodeRolle <T>> { Node<T> venstre, høyre ; T denne; Node (T t ) { denne = t ; void leggtiltre (Node <T> inn ) Node<T> finnidenneellerunder (Node <T> likdenne ) void skrivut ( ) michael@ifi.uio.no INF april 2013 (uke 16) 42

43 class Ord implements BTNodeRolle <Ord> { private String ordet ; Ord ( String s ) { ordet = s ; public int compareto( Ord o) public void skrivut ( ) public class Eksempel1 { public static void main( String [ ] args ) { Node<Ord> rot = new Node<Ord> (new Ord( kryss ) ) ; michael@ifi.uio.no INF april 2013 (uke 16) 43

44 Klassen Ord class Ord implements BTNodeRolle <Ord> { private String ordet ; Ord ( String s ) { ordet = s ; public int compareto( Ord o ) { return ordet. comparetoignorecase ( o. ordet ) ; public void skrivut ( ) { System. out. print ( ordet+" " ) ; michael@ifi.uio.no INF april 2013 (uke 16) 44

45 Et Node<Ord>-objekt Tilstand i programmet etter setningen Node<Ord> rot = new Node<Ord> (new Ord(kryss")); void leggtiltre(node<ord> inn) Node<Ord> finnidenneellerunder(node<ord> likdenne) Node<Ord> rot void skrivut() Sterkt forenklet: Node<Ord> venstre Ord denne Node<Ord> høyre kryss int compareto(ord o) kryss void skrivut() String ordet Konstruktører: Ord (String s) {ordet = s; Node (T t) {denne = t; michael@ifi.uio.no INF april 2013 (uke 16) 45

46 Fra main-metoden Node<Ord> rot = new Node<Ord> (new Ord( " kryss " ) ) ; rot. leggtiltre (new Node<Ord> (new Ord( "hanske" ) ) ) ; rot. leggtiltre (new Node<Ord> (new Ord( " angre " ) ) ) ; rot. leggtiltre (new Node<Ord> (new Ord( " nikkel " ) ) ) ; rot. leggtiltre (new Node<Ord> (new Ord( " ansvar " ) ) ) ; rot. leggtiltre (new Node<Ord> (new Ord( " juletre " ) ) ) ; rot. leggtiltre (new Node<Ord> (new Ord( " trøffel " ) ) ) ; rot. leggtiltre (new Node<Ord> (new Ord( " hylle " ) ) ) ; rot. leggtiltre (new Node<Ord> (new Ord( " adrenalin " ) ) ) ; rot. leggtiltre (new Node<Ord> (new Ord( " laser " ) ) ) ; michael@ifi.uio.no INF april 2013 (uke 16) 46

47 Settinnmetoden i Node<T> void leggtiltre (Node <T> inn ) { int smnlgn = denne. compareto( inn. denne ) ; i f ( smnlgn < 0 ) i f ( høyre == null ) høyre = inn ; else høyre. leggtiltre ( inn ) ; else i f ( venstre == null ) venstre = inn ; else venstre. leggtiltre ( inn ) ; Hva skjer med like objekter? michael@ifi.uio.no INF april 2013 (uke 16) 47

48 Node<Ord> rot kryss hanske Datastruktur ved kall på settinn-metoden (over) og resultat (under) Node<Ord> rot kryss hanske INF april 2013 (uke 16) 48

49 Node<Ord> rot kryss angre hanske void leggtiltre (Node <T> inn ) { int smnlgn = denne. compareto( inn. denne ) ; i f ( smnlgn < 0 ) i f ( høyre == null ) høyre = inn ; else høyre. leggtiltre ( inn ) ; else i f ( venstre == null ) venstre = inn ; else venstre. leggtiltre ( inn ) ; michael@ifi.uio.no INF april 2013 (uke 16) 49

50 Node<Ord> rot kryss hanske angre void leggtiltre (Node <T> inn ) { int smnlgn = denne. compareto( inn. denne ) ; i f ( smnlgn < 0 ) i f ( høyre == null ) høyre = inn ; else høyre. leggtiltre ( inn ) ; else i f ( venstre == null ) venstre = inn ; else venstre. leggtiltre ( inn ) ; michael@ifi.uio.no INF april 2013 (uke 16) 50

51 Node<Ord> rot kryss hanske angre void leggtiltre (Node <T> inn ) { int smnlgn = denne. compareto( inn. denne ) ; i f ( smnlgn < 0 ) i f ( høyre == null ) høyre = inn ; else høyre. leggtiltre ( inn ) ; else i f ( venstre == null ) venstre = inn ; else venstre. leggtiltre ( inn ) ; michael@ifi.uio.no INF april 2013 (uke 16) 51

52 Node<Ord> rot kryss kryss hanske angre nikkel ansvar juletre trøffel hylle adrenalin laser INF april 2013 (uke 16) 52

53 Node<Ord> rot kryss hanske kryss hanske angre nikkel ansvar juletre trøffel hylle adrenalin laser INF april 2013 (uke 16) 53

54 Node<Ord> rot kryss angre hanske kryss hanske angre nikkel ansvar juletre trøffel hylle adrenalin laser INF april 2013 (uke 16) 54

55 Node<Ord> rot kryss angre hanske kryss hanske angre nikkel ansvar juletre trøffel hylle adrenalin laser nikkel INF april 2013 (uke 16) 55

56 Node<Ord> rot kryss angre hanske ansvar kryss hanske angre nikkel ansvar juletre trøffel hylle adrenalin laser nikkel INF april 2013 (uke 16) 56

57 Node<Ord> rot kryss angre hanske ansvar juletre kryss hanske angre nikkel ansvar juletre trøffel hylle adrenalin laser nikkel INF april 2013 (uke 16) 57

58 Node<Ord> rot kryss angre hanske ansvar juletre kryss hanske angre nikkel ansvar juletre trøffel hylle adrenalin laser nikkel trøffel INF april 2013 (uke 16) 58

59 Node<Ord> rot kryss angre hanske ansvar juletre hylle kryss hanske angre nikkel ansvar juletre trøffel hylle adrenalin laser nikkel trøffel INF april 2013 (uke 16) 59

60 Node<Ord> rot kryss adrenalin angre hanske ansvar juletre hylle kryss hanske angre nikkel ansvar juletre trøffel hylle adrenalin laser nikkel trøffel INF april 2013 (uke 16) 60

61 Node<Ord> rot kryss adrenalin angre hanske ansvar juletre hylle kryss hanske angre nikkel ansvar juletre trøffel hylle adrenalin laser laser nikkel trøffel INF april 2013 (uke 16) 61

62 Finnmetoden i Node<T> Node<T> finnidenneellerunder (Node <T> likdenne ) { Node<T> fantdette ; int smnlgn = denne. compareto( likdenne. denne ) ; i f ( smnlgn < 0 ) i f ( høyre == null ) fantdette = null ; else fantdette = høyre. finnidenneellerunder ( likdenne ) ; else i f ( smnlgn > 0 ) i f ( venstre == null ) fantdette = null ; else fantdette = venstre. finnidenneellerunder ( likdenne ) ; else // smnlgn == 0, dvs. dette er noden det letes etter fantdette = this ; return fantdette ; michael@ifi.uio.no INF april 2013 (uke 16) 62

63 Node<Ord> rot kryss hanske nikkel angre juletre laser trøffel adrenalin ansvar hylle Node<Ord> funnet = rot. finnidenneellerunder (new Node<Ord> (new Ord( " hanske" ) ) ) ; michael@ifi.uio.no INF april 2013 (uke 16) 63

64 Node<Ord> rot kryss hanske nikkel angre juletre laser trøffel adrenalin ansvar hylle funnet. skrivut ( ) ; michael@ifi.uio.no INF april 2013 (uke 16) 64

65 Skrivutmetoden i Node<T> void skrivut ( ) { i f ( venstre!= null ) venstre. skrivut ( ) ; denne. skrivut ( ) ; i f ( høyre!= null ) høyre. skrivut ( ) ; NB! Rekkefølgen på skrivut-kallene vil forandre rekkefølgen. Metoden som er vist skriver ut objektene i alfabetisk stigende rekkefølge. Hvorfor? michael@ifi.uio.no INF april 2013 (uke 16) 65

66 Hva må du kunne om binære søketrær i INF1010 Lage programmer som 1. bygger opp et binært søketre (sette inn objekter) 2. finner igjen et objekt i et binært søketre 3. traverserer hele treet (f.eks. skriver ut alle objektene) 4. gjør om et binært søketre til en sortert liste 5. gjør om en usortert liste til et binært søketre (samme som 1.) Du skal også kunne gjøre rede for tilstandspåstandene som ligger til grunn for at en datastruktur skal være et binært søketre. Vil du vite mer om binære søketrær, kan denne wikipediaartikkelen være et greit utgangspunkt: michael@ifi.uio.no INF april 2013 (uke 16) 66

67 Tilstandspåstander et binært søketre (BST) består av 0 til n noder (noder) For alle noder i et BST gjelder: en node har en konstant verdi og en compareto-metode som er veldefinert når noden sammenlignes med andre noder en node har pekere til to BST (subtrær), v og h. alle nodene i venstre subtre (hvis ikke tomt) har verdier som er mindre enn eller lik nodens verdi basert på returverdien til nodens compareto-metode. alle nodene i høyre subtre har verdier som er større enn eller lik nodens verdi basert på returverdien til nodens compareto-metode. michael@ifi.uio.no INF april 2013 (uke 16) 67

68 Fra binærtre til liste Node<Ord> rot kryss hanske nikkel angre juletre laser trøffel adrenalin ansvar hylle Liste er en enklere struktur å lage en iterator over. INF april 2013 (uke 16) 68

69 Node<Ord> rot kryss hanske nikkel angre juletre laser trøffel adrenalin ansvar hylle INF april 2013 (uke 16) 69

70 Node<Ord> rot kryss Node<Ord> liste hanske nikkel angre juletre laser trøffel adrenalin ansvar hylle INF april 2013 (uke 16) 70

71 Et objekt av klassen Tre<Ord> Svarte nodeobjekter er av den indre klassen Node i Tre kryss Et objekt av klassen Liste<Ord> hanske nikkel angre juletre laser trøffel Grønne objekter er av klassen Ord adrenalin ansvar hylle Røde nodeobjekter er objekter av den indre nodeklassen i Liste michael@ifi.uio.no INF april 2013 (uke 16) 71

INF1010 Binære søketrær ++

INF1010 Binære søketrær ++ INF1010 Binære søketrær ++ Programeksempler med insetting, gjenfinning av noder i et binært søketre samt eksempler på hvordan lage en liste av et binærtre. Hva må du kunne om binære søketrær i INF1010

Detaljer

INF1010 siste begreper før oblig 2

INF1010 siste begreper før oblig 2 INF1010 siste begreper før oblig 2 Sammenligning. Mer lenkede lister. Forskjellige listeimplementasjoner. Binære trær. Bittelitt om grensesnitt (interface). Dagens forelesning Flere temaer på grunn av

Detaljer

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

Gjøre noe i hele treet = kalle på samme metode i alle objekten. Java datastruktur Klassestruktur Godkjent oblig 1? Les e-post til din UiO-adresse Svar på e-post fra lablærer Ingen godkjenning før avholdt møte med lablærer Godkjentlistene brukes ikke til å informere om status for obligene Ta vare på

Detaljer

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

Eks 1: Binærtre Binærtretraversering Eks 2: Binærtre og stakk Godkjent oblig 1? Les e-post til din UiO-adresse Svar på e-post fra lablærer Ingen godkjenning før avholdt møte med lablærer Godkjentlistene brukes ikke til å informere om status for obligene Ta vare på

Detaljer

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

Binære søketrær. Et notat for INF1010 Stein Michael Storleer 16. mai 2013 Binære søketrær Et notat for INF Stein Michael Storleer 6. mai 3 Dette notatet er nyskrevet og inneholder sikkert feil. Disse vil bli fortløpende rettet og datoen over blir oppdatert samtidig. Hvis du

Detaljer

Dagens tema. Sortering. Fortsettelse om programmering vha tråder.

Dagens tema. Sortering. Fortsettelse om programmering vha tråder. Dagens tema Sortering. Fortsettelse om programmering vha tråder. «orden» i dataene vi blir fort lei av å lete poleksempel internett «alt» er søking og sortering alternativer til sortering og søking binære

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

Dagens tema. Sortering. Fortsettelse om programmering vha tråder.

Dagens tema. Sortering. Fortsettelse om programmering vha tråder. Dagens tema Sortering. Fortsettelse om programmering vha tråder. «orden» i dataene vi blir fort lei av å lete poleksempel internett «alt» er søking og sortering alternativer til sortering og søking binære

Detaljer

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

INF110 Algoritmer og datastrukturer TRÆR. Vi skal i denne forelesningen se litt på ulike typer trær: TRÆR Vi skal i denne forelesningen se litt på ulike typer trær: Generelle trær (kap. 4.1) Binærtrær (kap. 4.2) Binære søketrær (kap. 4.3) Den siste typen trær vi skal behandle, B-trær (kap. 4.7) kommer

Detaljer

Lenkelister. Lister og køer. Kopi av utvalgte sider fra forelesningen.

Lenkelister. Lister og køer. Kopi av utvalgte sider fra forelesningen. Lenkelister. Lister og køer. Kopi av utvalgte sider fra forelesningen. "Taher" type: String : type: :... type: : inf1010student null michael@ifi.uio.no INF1010 26. januar 2012 (uke 4) 2 class Eks01 { public

Detaljer

Definisjon av binært søketre

Definisjon av binært søketre Binære søketrær Definisjon av binært søketre For alle nodene i et binært søketre gjelder: Alle verdiene i nodens venstre subtre er mindre enn verdien i noden Alle verdiene i nodens høyre subtre er større

Detaljer

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

Dagens tema. INF Algoritmer og datastrukturer. Binærtrær. Generelle trær Dagens tema INF2220 - Algoritmer og datastrukturer HØSTEN 2007 Institutt for informatikk, Universitetet i Oslo INF2220, forelesning 2: Binærtrær og abstrakte datatyper (ADT) Kort repetisjon Generelle trær

Detaljer

UNIVERSITETET I OSLO

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

Detaljer

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

Binære søketrær. En ordnet datastruktur med raske oppslag. Sigmund Hansen Binære søketrær En ordnet datastruktur med raske oppslag Sigmund Hansen Lister og trær Rekke (array): 1 2 3 4 Lenket liste (dobbelt-lenket): 1 2 3 4 Binært søketre: 3 1 4 2 Binære

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

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

Balanserte binære søketrær

Balanserte binære søketrær Balanserte trær Balanserte binære søketrær Balanserte binære søketrær høyden (l treet er O(log 2 n) AVL trær rød-svarte trær svake AVL trær splaytrær heaps AVL trær rød-svarte trær svake AVL trær splaytrær

Detaljer

Algoritmer og datastrukturer Eksamen

Algoritmer og datastrukturer Eksamen Eksamen - Algoritmer og datastrukturer - Høgskolen i Oslo og Akershus - 27.11.2012 Side 1 av 6 Algoritmer og datastrukturer Eksamen 27.11.2012 Eksamensoppgaver Råd og tips: Bruk ikke for lang tid på et

Detaljer

Binære trær: Noen algoritmer og anvendelser

Binære trær: Noen algoritmer og anvendelser Binære trær: Noen algoritmer og anvendelser Algoritmer / anvendelser: Søking i usortert binært tre Telling av antall noder og nivåer i treet Traversering av binære trær Binære uttrykkstrær Kunstig intelligens(?):

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

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

Fra Kap.10 Binære søketre (BS-tre) Sist oppdatert 20.03.10 Definere en abstrakt datastruktur binært søketre. Vise hvordan binær søketre kan brukes Fra Kap.10 Binære søketre (BS-tre) Sist oppdatert 20.03.10 Definere en abstrakt datastruktur binært søketre. Vise hvordan binær søketre kan brukes til å løse problemer. Undersøke ulike implementasjoner

Detaljer

Eksempel: Uttrykkstrær I uttrykkstrær inneholder bladnodene operander (konstanter, variable,... ), mens de interne nodene inneholder operatorer.

Eksempel: Uttrykkstrær I uttrykkstrær inneholder bladnodene operander (konstanter, variable,... ), mens de interne nodene inneholder operatorer. TRÆR Generelle trær Dagens plan: Kort repetisjon Generelle trær Binærtrær Implementasjon Traversering Binære søketrær Definisjon Søking, innsetting og sletting Gjennomsnitts-analyse (!) Eksempel: Ibsens

Detaljer

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

INF2220: Forelesning 1. Praktisk informasjon Analyse av algoritmer (kapittel 2) (Binær)trær (kapittel ) INF2220: Forelesning 1 Praktisk informasjon Analyse av algoritmer (kapittel 2) (Binær)trær (kapittel 4.1-4.3 + 4.6) PRAKTISK INFORMASJON 2 Praktisk informasjon Kursansvarlige Ragnhild Kobro Runde (ragnhilk@ifi.uio.no)

Detaljer

Generelle trær BINÆRTRÆR. Binærtrær

Generelle trær BINÆRTRÆR. Binærtrær BINÆRTRÆR Kort repetisjon Generelle trær Binærtrær Implementasjon Traversering Binære søketrær Definisjon Søking, innsetting og sletting Gjennomsnitts-analyse Eksempel: Ibsens skuespill Generelle trær

Detaljer

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet Eksamen i : INF 110 Algoritmer og datastrukturer Eksamensdag : Lørdag 8. desember 2001 Tid for eksamen : 09.00-15.00 Oppgavesettet er på

Detaljer

< T extends Comparable<T> > Indre klasser mm. «Det du bør ha hørt om før oblig 4»

< T extends Comparable<T> > Indre klasser mm. «Det du bør ha hørt om før oblig 4» < T extends Comparable > Indre klasser mm. «Det du bør ha hørt om før oblig 4» Strukturen i oblig 3 null null null null Personbeholder pl null null Person p "Adnan" michael@ifi.uio.no INF1010 21. februar

Detaljer

INF1010. Grensesnittet Comparable<T>

INF1010. Grensesnittet Comparable<T> INF1010 21. februar 2013 Grensesnittet Comparable Stein Michael Storleer Institutt for Informatikk Universitetet i Oslo Interface med parametre interface Utkledd { // T er klassen jeg er utkledd

Detaljer

INF1010 Eksamenstips. Løsningsforslag prøveeksamen del 1.

INF1010 Eksamenstips. Løsningsforslag prøveeksamen del 1. INF1010 Eksamenstips Løsningsforslag prøveeksamen del 1. michael@ifi.uio.no INF1010 FSE 25. mai 2011 (uke 21) 2 Les igjennom hele oppgaven. Les igjennom hele oppgaven en gang til, marker i teksten ting

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

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO Eksamen i UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet Eksamensdag: 13. desember 2011 Tid for eksamen: 14.30 18.30 Oppgavesettet er på 7 sider. Vedlegg: INF2220 lgoritmer og datastrukturer

Detaljer

INF2220: Forelesning 2

INF2220: Forelesning 2 INF2220: Forelesning 2 Mer om analyse av algoritmer Analyse av binære søketrær Balanserte søketrær Rød-svarte trær (kapittel12.2) B-trær (kapittel 4.7) ANALYSE AV ALGORITMER 2 Analyse av tidsforbruk Hvor

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

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

alternativer til sortering og søking binære trær søketrær Ikke-rekursiv algoritme som løser Hanois tårn med n plater

alternativer til sortering og søking binære trær søketrær Ikke-rekursiv algoritme som løser Hanois tårn med n plater Dagens temaer Sortering: 4 metoder Hvorfor sortering (og søking) er viktig i programmering Sortering når objektene som skal sorteres er i et array 1. Sorterering ved bruk av binærtre som «mellomlager»

Detaljer

klassen Vin må få en ny variabel Vin neste alle personvariable (personpekere) i listeklassen må byttes til Vin

klassen Vin må få en ny variabel Vin neste alle personvariable (personpekere) i listeklassen må byttes til Vin INF1010 forelesning Lenkelister II Dette skrivet inneholder en oversikt over det jeg planlegger å forelese på andre forlesning om lenkelister. Det inneholder stort sett programeksempler med kommentarer

Detaljer

INF2220: Forelesning 2

INF2220: Forelesning 2 INF2220: Forelesning 2 Balanserte søketrær Rød-svarte trær (kapittel12.2) B-trær (kapittel 4.7) REPETISJON: BINÆRE SØKETRÆR 2 Binære søketrær 8 4 12 2 7 9 15 6 11 13 16 For enhver node i et binært søketre

Detaljer

INF2220: Forelesning 2. Balanserte søketrær Rød-svarte trær (kapittel12.2) B-trær (kapittel 4.7)

INF2220: Forelesning 2. Balanserte søketrær Rød-svarte trær (kapittel12.2) B-trær (kapittel 4.7) INF2220: Forelesning 2 Balanserte søketrær Rød-svarte trær (kapittel12.2) B-trær (kapittel 4.7) REPETISJON: BINÆRE SØKETRÆR 2 Binære søketrær 8 4 12 2 7 9 15 6 11 13 16 For enhver node i et binært søketre

Detaljer

Algoritmer og datastrukturer Løsningsforslag

Algoritmer og datastrukturer Løsningsforslag Algoritmer og datastrukturer Løsningsforslag Eksamen 30. november 2010 Oppgave 1A Et turneringstre for en utslagsturnering med n deltagere blir et komplett binærtre med 2n 1 noder. I vårt tilfelle får

Detaljer

Algoritmer og datastrukturer Løsningsforslag

Algoritmer og datastrukturer Løsningsforslag Algoritmer og datastrukturer ved Høgskolen i OsloSide 1 av 6 Algoritmer og datastrukturer Løsningsforslag Eksamen 24. februar 2010 Oppgave 1A 1. Komparatoren sammenligner først lengdene til de to strengene.

Detaljer

Algoritmer og datastrukturer Kapittel 9 - Delkapittel 9.2

Algoritmer og datastrukturer Kapittel 9 - Delkapittel 9.2 Delkapittel 9.2 Rød-svarte og 2-3-4 trær side 1 av 21 Algoritmer og datastrukturer Kapittel 9 - Delkapittel 9.2 9.2 Rød-svarte og 2-3-4 trær 9.2.1 B-tre av orden 4 eller 2-3-4 tre Et rød-svart tre og et

Detaljer

Repetisjon: Binære. Dagens plan: Rød-svarte trær. Oppgave (N + 1)!

Repetisjon: Binære. Dagens plan: Rød-svarte trær. Oppgave (N + 1)! Repetisjon: Binære søketrær Dagens plan: Rød-svarte trær (kap. 12.2) B-trær (kap. 4.7) bstrakte datatyper (kap. 3.1) takker (kap. 3.3) For enhver node i et binært søketre gjelder: lle verdiene i venstre

Detaljer

Dagens temaer. Sortering: 4 metoder Søking: binærsøk Rekursjon: Hanois tårn

Dagens temaer. Sortering: 4 metoder Søking: binærsøk Rekursjon: Hanois tårn Dagens temaer Sortering: 4 metoder Hvorfor sortering (og søking) er viktig i programmering Sortering når objektene som skal sorteres er i et array 1. Sorterering ved bruk av binærtre som «mellomlager»

Detaljer

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO 1 UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet Eksamen i : IN 115 Eksamensdag : Lørdag 20 mai, 2000 Tid for eksamen : 09.00-15.00 Oppgavesettet er på : 5 sider Vedlegg : Intet. Tillatte

Detaljer

INF1010 e-postadresser

INF1010 e-postadresser INF1010 e-postadresser Ikke-faglige spørsmål til studieinfo@ifi.uio.no. Faglige spørsmål til blogen eller til @ifi.uio.no: brukernavn kristoeb josek stianf bendiko bmmender espeak richar daghf

Detaljer

Dagens plan: INF2220 - Algoritmer og datastrukturer. Repetisjon: Binære søketrær. Repetisjon: Binære søketrær

Dagens plan: INF2220 - Algoritmer og datastrukturer. Repetisjon: Binære søketrær. Repetisjon: Binære søketrær Dagens plan: INF2220 - lgoritmer og datastrukturer HØTEN 2007 Institutt for informatikk, Universitetet i Oslo (kap. 4.7) (kap. 12.2) Interface ollection og Iterator (kap. 3.3) et og maps (kap. 4.8) INF2220,

Detaljer

"behrozm" Oppsummering - programskisse for traversering av en graf (dybde først) Forelesning i INF februar 2009

behrozm Oppsummering - programskisse for traversering av en graf (dybde først) Forelesning i INF februar 2009 Rekursiv programmering BTeksempel Datastruktur I klassen Persontre (rotperson==) Rekursjon Noen oppgaver/problemer er rekursive «av natur» Eksempel på en rekursiv definisjon Fakultetsfunksjonen

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

Definisjon: Et sortert tre

Definisjon: Et sortert tre Binære søketrær Definisjon: Et sortert tre For alle nodene i et binært søketre gjelder: Alle verdiene i nodens venstre subtre er mindre enn verdien i noden Alle verdiene i nodens høyre subtre er større

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

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet Eksamen i Eksamensdag: 6. juni 2006 Tid for eksamen: 1430 1730 Oppgavesettet er på 6 sider. Vedlegg: INF1010 Objektorientert programmering

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

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

EKSAMEN. Dato: 9. mai 2016 Eksamenstid: 09:00 13:00 EKSAMEN Emnekode: ITF20006 Emne: Algoritmer og datastrukturer Dato: 9. mai 2016 Eksamenstid: 09:00 13:00 Hjelpemidler: Alle trykte og skrevne Faglærer: Jan Høiberg Om eksamensoppgavene: Oppgavesettet består

Detaljer

Rekursjon. Binærsøk. Hanois tårn.

Rekursjon. Binærsøk. Hanois tårn. Rekursjon Binærsøk. Hanois tårn. Hvorfor sortering (og søking) er viktig i programmering «orden» i dataene vi blir fort lei av å lete poleksempel internett «alt» er søking og sortering alternativer til

Detaljer

INF2220: Forelesning 1

INF2220: Forelesning 1 INF2220: Forelesning 1 Praktisk informasjon Analyse av algoritmer (kapittel 2) (Binær)trær (kapittel 4.1-4.3 + 4.6) Praktisk informasjon 2 Praktisk informasjon Kursansvarlige Ingrid Chieh Yu de Vibe (ingridcy@ifi.uio.no)

Detaljer

EKSAMEN med løsningsforslag

EKSAMEN med løsningsforslag EKSAMEN med løsningsforslag Emnekode: ITF20006 Emne: Algoritmer og datastrukturer Dato: Eksamenstid: 20. mai 2009 kl 09.00 til kl 13.00 Hjelpemidler: 8 A4-sider (4 ark) med egne notater Kalkulator Faglærer:

Detaljer

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

Trær. En datastruktur (og abstrakt datatype ADT)

Trær. En datastruktur (og abstrakt datatype ADT) Trær Trær En datastruktur (og abstrakt datatype ADT) Trær En datastruktur (og abstrakt datatype ADT) En graf som 8lfredss8ller bestemte krav Object [] int [] tall array element 0 1 2 3 4 5 0 1 2 3 4 5

Detaljer

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

Løsnings forslag i java In115, Våren 1996 Løsnings forslag i java In115, Våren 1996 Oppgave 1a For å kunne kjøre Warshall-algoritmen, må man ha grafen på nabomatriseform, altså en boolsk matrise B, slik at B[i][j]=true hvis det går en kant fra

Detaljer

Algoritmer og Datastrukturer

Algoritmer og Datastrukturer Eksamen i Algoritmer og Datastrukturer IAI 20102 Høgskolen i Østfold Avdeling for informatikk og automatisering Lødag 5. juni 2004, kl. 09.00-13.00 Hjelpemidler: Alle trykte og skrevne hjelpemidler. Kalkulator.

Detaljer

Lenkelister og beholdere av lenkelister

Lenkelister og beholdere av lenkelister Lenkelister og beholdere av lenkelister Et notat for INF1010 Stein Michael Storleer 4. februar 2013 Lister er den vanligste datastrukturen. Vi treffer på den overalt. Når vi har mange objekter i et program,

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

Løsningsforslag til INF110 h2001

Løsningsforslag til INF110 h2001 Løsningsforslag til INF110 h2001 Eksamen i : INF 110 Algoritmer og datastrukturer Eksamensdag : Lørdag 8. desember 2001 Tid for eksamen : 09.00-15.00 Oppgavesettet er på : 5 sider inkludert vedlegget Vedlegg

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

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

Hva er en algoritme? INF HØSTEN 2006 INF1020. Kursansvarlige Ragnar Normann E-post: Dagens tema va er en algoritme? Vanlig sammenligning: Oppskrift. nput lgoritme NF1020 - ØSTEN 2006 Kursansvarlige Ragnar Normann E-post: ragnarn@ifi.uio.no Output Knuth : tillegg til å være et endelig sett med regler

Detaljer

Object [] element. array. int [] tall

Object [] element. array. int [] tall Datastrukturer Object [] int [] tall array element 0 1 2 3 4 5 0 1 2 3 4 5 6 7 8 40 55 63 17 22 68 89 97 89 graf lenkeliste graf Object data Node neste Node neste Node neste Node neste Node Node neste

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

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

EKSAMEN Løsningsforslag. med forbehold om bugs :-) 1 EKSAMEN Løsningsforslag med forbehold om bugs :-) Emnekode: ITF20006 000 Dato: 20. mai 2011 Emne: Algoritmer og datastrukturer Eksamenstid: 09:00 til 13:00 Hjelpemidler: 8 A4-sider (4 ark) med egne notater

Detaljer

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

G høgskolen i oslo. Emne: Algoritmer og datastrukturer. Emnekode: 80131A. Faglig veileder: UlfUttersrud. Gruppe(r) : Dato: 09.12. G høgskolen i oslo Emne: Algoritmer og datastrukturer Emnekode: 80131A Faglig veileder: UlfUttersrud Gruppe(r) : Dato: 09.12.2004 Eksamenstid: 9-14 Eksamensoppgaven består av: Tillatte hjelpemidler Antall

Detaljer

Algoritmer og Datastrukturer

Algoritmer og Datastrukturer Eksamen i Algoritmer og Datastrukturer IAI 20102 Høgskolen i Østfold Avdeling for informatikk og automatisering Lødag 5. juni 2004, kl. 09.00-13.00 LØSNINGSFORSLAG 1 Del 1 60% Oppgave 1.1-10% Forklar kort

Detaljer

Seminaroppgaver IN1010, uke 2

Seminaroppgaver IN1010, uke 2 Seminaroppgaver IN1010, uke 2 1.a: Skriv en klasse HeiVerden.java. Klassen skal inneholde en main- metode (se på notatet fra tidligere). Inne i main -metoden skal programmet først la brukeren oppgi en

Detaljer

Vanlige datastrukturer. I dette lysarksettet

Vanlige datastrukturer. I dette lysarksettet Vanlige datastrukturer I dette lysarksettet datastrukturer Datastrukturer i Med datastruktur mener vi måten objektene i et program er strukturert på. Særlig blir det aktuelt å snakke om struktur hvis vi

Detaljer

Algoritmer og datastrukturer Kapittel 9 Delkapittel 9.2

Algoritmer og datastrukturer Kapittel 9 Delkapittel 9.2 Delkapittel 9.2 Rød-svarte og 2-3-4 trær Side 1 av 24 Algoritmer og datastrukturer Kapittel 9 Delkapittel 9.2 9.2 Rød-svarte og 2-3-4 trær 9.2.1 B-tre av orden 4 eller 2-3-4 tre Et 2-3-4 tre (et B-tre

Detaljer

INF2220: Forelesning 1

INF2220: Forelesning 1 INF2220: Forelesning 1 Praktisk informasjon Analyse av algoritmer (kapittel 2) Rekursjon (kapittel 1.3) (Binær)trær (kapittel 4.1-4.3 + 4.6) Praktisk informasjon 2 Praktisk informasjon Kursansvarlige Ingrid

Detaljer

Enkle datastrukturer. Lars Greger Nordland Hagen. Introduksjon til øvingsopplegget og gjennomgang av python

Enkle datastrukturer. Lars Greger Nordland Hagen. Introduksjon til øvingsopplegget og gjennomgang av python 1 Enkle datastrukturer Lars Greger Nordland Hagen algdat@idi.ntnu.no Introduksjon til øvingsopplegget og gjennomgang av python 2 I dag Stack Kø (queue) Lenkede lister (linked list) Trær Binære søketrær

Detaljer

KONTINUASJONSEKSAMEN

KONTINUASJONSEKSAMEN Høgskolen i Gjøvik KONTINUASJONSEKSAMEN FAGNAVN: FAGNUMMER: Algoritmiske metoder I L 171 A EKSAMENSDATO: 19. august 1999 KLASSE: 97HINDA / 97HINDB ( 2DA / 2DB ) TID: 09.00-14.00 FAGLÆRER: Frode Haug ANT.

Detaljer

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet Eksamen i IN 115 og IN 110 Algoritmer og datastrukturer Eksamensdag: 14. mai 1996 Tid for eksamen: 9.00 15.00 Oppgavesettet er på 8 sider.

Detaljer

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

Oppgave 1 LØSNINGSFORSLAG. Eksamen i INF desember Betrakt følgende vektede, urettede graf: INF100 Algoritmer og datastrukturer INF100 Algoritmer og datastrukturer Oppgave 1 LØSNINGSFORSLAG Betrakt følgende vektede, urettede graf: V 1 V Eksamen i INF100 1. desember 004 V V 4 V 4 V V Ragnar Normann

Detaljer

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

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

Fagnr: SO 131 A. Ant. vedlegg: 1 (2 sider) Fag: Algoritmer datastrukturer og Fagnr: SO 131 A Faglig ansv.: Ulf Uttersrud Sensor: Tor Lønnestad Ant. sider: 4 Ant. oppgaver: 3 Ant. vedlegg: 1 (2 sider) Dato: 10.12.2001 Eksamenstid: 9-14 RAd og tips:

Detaljer

Hvorfor sortering og søking? Søking og sortering. Binære søketrær. Ordnet innsetting forbereder for mer effektiv søking og sortering INF1010 INF1010

Hvorfor sortering og søking? Søking og sortering. Binære søketrær. Ordnet innsetting forbereder for mer effektiv søking og sortering INF1010 INF1010 Hvorfor sortering og søking? Man bør ha orden i dataene umulig å leve uten i informasjonssamfunnet vi blir fort lei av å lete poleksempel internett alt er søking og sortering alternativer til sortering

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

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

Binære Søketre. Egenskap. Egenskap : Grafisk. Egenskap : Kjøretid. Egenskap : Kjøretid. Egenskap : Oppsumering. Binære Søketre

Binære Søketre. Egenskap. Egenskap : Grafisk. Egenskap : Kjøretid. Egenskap : Kjøretid. Egenskap : Oppsumering. Binære Søketre genskap inære Søketre inære Søketre t binært søketre er organisert som et binærtre, og har følgende egenskap a x være en node i et binært søketre. vis y er en node i x s venstre subtre, vil verdi[y] verdi[x]

Detaljer

INF1000: Forelesning 7

INF1000: Forelesning 7 INF1000: Forelesning 7 Klasser og objekter del 2 Konstruktører Static UML REPETISJON 2 Repetisjon Repetisjon forts. Verden består av objekter av ulike typer (klasser). Ofte er det mange objekter av en

Detaljer

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

Fagnr: A. Ant. vedlegg: 1 (2 sider) 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:

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

Lenkelister. Lister og køer.

Lenkelister. Lister og køer. Lenkelister. Lister og køer. INF1010 Stein Michael Storleer 27. januar 2011 Dagens forelesning Lenkede lister Lenkede lister Eksempel på en lenket liste: personliste Operasjoner på lenkede lister (enkeltlenket)

Detaljer

Velkommen til INF1010

Velkommen til INF1010 Velkommen til INF1010 Dagens forelesning Hvordan jobbe med INF1010 Pensum Datastrukturer Grafer (lister og trær) Objektorientert programmering Lister og køer Hva er en liste? FIFO- og LIFO-lister Lenkede

Detaljer

KONTINUASJONSEKSAMEN

KONTINUASJONSEKSAMEN Høgskolen i Gjøvik Avdeling for Teknologi KONTINUASJONSEKSAMEN FAGNAVN: FAGNUMMER: Algoritmiske metoder I L 189 A EKSAMENSDATO: 13. august 2001 KLASSE: 99HINDA / 99HINDB / 99HINEA / 00HDESY ( 2DA / 2DB

Detaljer

INF Algoritmer og datastrukturer. Hva er INF2220? Algoritmer og datastrukturer

INF Algoritmer og datastrukturer. Hva er INF2220? Algoritmer og datastrukturer Praktiske opplysninger INF2220 - Algoritmer og datastrukturer HØSTEN 2007 Institutt for informatikk, Universitetet i Oslo Tid og sted: Mandag kl. 12:15-14:00 Store auditorium, Informatikkbygningen Kursansvarlige

Detaljer

Eksamen INF1010 V2009 Del B prøveeksamen V2010 Vekt 60 %

Eksamen INF1010 V2009 Del B prøveeksamen V2010 Vekt 60 % Eksamen INF1010 V2009 Del B prøveeksamen V2010 Vekt 60 % Stein Gjessing Institutt for Informatikk Universitetet i Oslo 1 Oppgave 10 Tegning av datastrukturen (vekt 5% av del B) Tegn datastrukturen til

Detaljer

København 20 Stockholm

København 20 Stockholm UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet Eksamen i IN 115 Algoritmer og datastrukturer Eksamensdag: 26. mai 2001 Tid for eksamen: 9.00 15.00 Oppgavesettet er på 7 sider. Vedlegg:

Detaljer

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

09.12.2003 9-14. ~ta11 oppgaver: 4. Nle skriftlige hjelpemidler-både trykte og håndskrevne, er tillatt I Kontrollert I høgskolen i oslo Emne Emnekode: Faglig veileder: Algoritmer og datastrukturer 80 131A UlUttersrud ppe(r): Dato: Eksamenstid:- 09.12.2003 9-14 Eksamensoppgaven består av: ta11 sider (inkl

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

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

EKSAMENSOPPGAVE. INF-1101 Datastrukturer og algoritmer. Adm.bygget, rom K1.04 og B154 Ingen Fakultet for naturvitenskap og teknologi EKSAMENSOPPGAVE Eksamen i: Dato: 15.mai 2018 Klokkeslett: 09:00 13:00 Sted: Tillatte hjelpemidler: Adm.bygget, rom K1.04 og B154 Ingen Type innføringsark (rute/linje):

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

INF1010, 22. mai Prøveeksamen (Eksamen 12. juni 2012) Stein Gjessing Inst. for Informatikk Universitetet i Oslo

INF1010, 22. mai Prøveeksamen (Eksamen 12. juni 2012) Stein Gjessing Inst. for Informatikk Universitetet i Oslo INF, 22. mai 23 Prøveeksamen 23 (Eksamen 2. juni 22) Stein Gjessing Inst. for Informatikk Universitetet i Oslo Oppgave a Tegn klassehierarkiet for de 9 produkttypene som er beskrevet over. Inkluder også

Detaljer