Begreber og Redskaber 9. Plan for idag I dag: Datastrukturer Tabeller Lister, mængder, maps, grafer Hægtede lister.

Slides:



Advertisements
Lignende præsentationer
SPBG.  Test driven development  Unit test frameworks  MOSS TDD  Mocking  Design patterns.
Advertisements

Location-Based services. Maps Agenda •Geocoding •Interaktive kort med Map Vievs og Map Activities •Overlays til kort •Location-based services •Advarsler.
Dagens program  Emne: Tim Berners-Lees WWW koncept og deraf følgende innovationer Forbered hver for sig Præsenter og diskutér i grupper Fremlæggelse med.
Februar 2005Sprog-nyheder i C# og VB1 Captator Tlf: Henrik Lykke Nielsen Softwarearkitekt, Microsoft Regional Director for Denmark.
C#: Data Typer. Indhold: “.NET is designed around the CTS, or Common Type System. The CTS is what allows assemblies, written in different languages, to.
1 Frameworks. 2 Plan Frameworks • Kollektioner • Input/output Nyt designmønster: Decorator.
T1 – OPGAVE 14.2 LINETT & SABRINA Klasse Varer namespace Opgave_14._2 { class Varer { private string vare; private string farve; private double.
Array og ArrayList Et slideshow. Som er sødt.. Hvordan virker ArrayList?  ArrayList NAVN = new ArrayList ();  NAVN.add(”Værdi”);  NAVN.add(index, ”værdi”)
Effective Java items Orange gruppe Thuy, Janne, Mads T.P., Oliver og Sebastian.
C#: Udtryk og metoder. Indhold “With regards to programming statements and methods, C# offers what you would come to expect from a modern OOPL…” Udtryk.
Datastrukturer og Collections Oversigt og forskel imellem Jave og.net Collections library Collection interfaces ArrayList IList interface Hashtable Hashtable.
06 – Java Packages Packages og ClassPath. 2 NOEA2009Java-kursus – Packages og class path Hvad er Packages? En package er en gruppering af relaterede typer.
Item gennemgang  Item: 01 – Static factory methods  Item: 09 – Override hashCode  Item: 17 – Design & document inheritence  Item: 25 – Lists over arrays.
Collectionklasser Klassifikation og anvendelse. Collections Motivation –hvorfor bruge collections? Realisering af en-til-mange relationer –Importer, erklær,
View Procedures Trigger og Function Jesper Tørresø DAB1 E07 1. november 2007.
Array vs. ArrayList. Arrays Et array er en struktureret metode til at gemme flere værdier af den samme datatype. Data’en i et array ligger op ad hinanden.
// Semaphore.java package semaphore; public class Semaphore { int resources = 1; // Constructors Semaphore() {} Semaphore(int i) { resources = i; } synchronized.
Objekter og klasser Applikationsdesign Code Namespace Value og reference typer Reference type Rasmus D. Lehrmann1.
12 – GUI med Swing. 2 NOEA2009Java-kursus – GUI med Swing Designer view Komponenter Frame Properties Inspector.
Tietgen Skolen Syntaks: while ( betingelse for loop ) statement; Eksempel: int tal = 0; while ( tal/3 != 4 ) { System.Console.WriteLine(tal); tal = tal.
WCF service Hostet på website x. Opret tomt web applikations projekt.
Datastruktur & Algoritmik1 Sidste gang For j:=2 to len(A) do key:=A[j] (* indsæt key *) i:=j-1 while i>0 and A[i]>key do A[i+1]:=A[i] i-- A[i+1]:=key For.
Begreber og Redskaber 8. Plan for idag Sortering fortsat Comparable Søgning –Lineær søgning –Binær søgning.
Abstrakte klasser og interfaces i Java
Programering af mobile enheder Windows Phone Storage.
Session Når man hoster en WCF Service på ASP.NET website, kan man bruge ASP.NET’s Session.
Gruppe sort Morten, Peter, Jesper, Spencer & Støving.
Datastrukturer og Collections Rasmus D. Lehrmann DM
Collectionklasser Ekstra materiale. Collections Motivation – hvorfor bruge collections? Realisering af en-til-mange relationer – Importer, erklær, initialiser.
Begreber og Redskaber 5. Collections i Java 1.2 Framework: samling af datastrukturer og algoritmer som generelt værktøj. En ramme til at arbejde med søgning.
Begreber og Redskaber 6. Plan for idag Tabeller Udvalgssortering, køretid Lidt mere om objekter Budskab: Køretid kan være et problem og bør løses med.
Begreber og Redskaber 5. Plan for idag Overblik over klasser,objekter,nedarvning –Repetition fra Dat A/Indledende programmering –Centrale begreber om.
MEC, DAIMIIntroJava AAU1 Crayon-objekter nu med loops og metoder.
Forelæsning 3.1 Collections Javas for-each løkke
Opsamling Loops Klassedesign Immutable Lister shallowCopy() Projekt 2 FEN KbP/seminar3: Opsamling.
1 Implementering af fundamentale datastrukturer. 2 Plan Stakke og køer Array-repræsentation Liste-repræsentation Hægtede lister Træer Terminologi Traversering.
Lektion 7 Læsestof: Kopier fra Caranno
Fundamentale datastrukturer
Mønstre En lille introduktion. Singleton Tilgå et objekt igennem klassereference i stedet for objektreference.  Overflødiggør referencer til objektet.
FEN KbP/seminar2: design11 Kontraktbaseret programmering Seminar 2 Klassedesign – grundprincipper Eksempler: Stack Dictionary.
Forelæsning 5.1 Brug af klassen Collections og interfacet Comparable samt parametriserede typer Projektuge: Ants and Spiders / Lommeregner dIntProg,
Grafalgoritmer II.
10. Datastrukturer. 2 Nordjyllands Erhvervakademi Collections library Datastrukturer i.NET kaldes normalt Collections Findes i namespace System.Collections.
1 Fundamentale datastrukturer. 2 Definitioner: abstrakt datatype, datastruktur Elementære datastrukturer og abstrakte datatyper: arrays, stakke, køer,
1 Fundamentale datastrukturer. 2 Definitioner: abstrakt datatype, datastruktur Elementære datastrukturer og abstrakte datatyper : arrays, stakke, køer,
Comparable Students German Students Composite Pattern State Pattern Observer Pattern Collections Interfaces Abstrakte klasser Design Patterns.
Begreber og Redskaber 7. Plan for idag Rekursive underprogrammer Rekursive datastrukturer Rekursion vs iteration Rekursivt: Flette sortering.
FEN KbP/seminar2: design21 Kontraktbaseret programmering Seminar 2 Klassedesign: Immutable lister Queue Shallowcopy og alkvantoren.
FEN IntroJava AAU1 Klasser og objekter Grundbegreber Student-Course.
1 Implementering af fundamentale datastrukturer. 2 Stakke og køer Array-repræsentation Liste-repræsentation Hægtede lister Træer Terminologi Traversering.
KF04 GRAY Item 2, 12, 22, 32, 42, 52. Consider a builder when faced with many constructor parameters Item 2.
9. Interfaces. 2 Nordjyllands Erhvervakademi Objectives “Good class design starts with good application design — how many classes, do they relate.
Begreber og Redskaber 11. Plan for idag Lidt afrunding: Collections Framework i Java Noget om oversættere og sprog Evaluering Sidste gang øvelser før.
Forelæsning 7.1 – repetition
Paradigmer i Programmering 3. Højere ordens funktioner Idag: Højere ordens funktioner Algebraiske datatyper Næste gang: I/O, Filer, interaktive programmer.
Effective Java Blå gruppe. Item 18: Interfaces frem for abstrakte klasser Kan implementeres i klasser der ikke nedarver Eksisterende klasser kan nemt.
Begreber og Redskaber 4. Plan for idag Om metoder, parametre, returværdier Et par ord om objekt-orientering Håndkøring af programmer.
Begreber og Redskaber 3. Plan for idag Om metoder, parametre, returværdier Overblik over klasser,objekter,nedarvning Et par ord om objekt-orientering.
I o p o DAIMI, AU, November 1999Programkonstruktion I9E.1 Konstruktion og brug af klasser – en stak og en HP-regnemaskine push pop.
 Henrik B. Christensen, 1999Introducerende objektorienteret programmering8B.1 Interfaces En ren kontrakt.
 Michael E. Caspersen, 2000Introducerende objektorienteret programmering6A.1 Programmering med interfaces – en stak og en HP-regnemaskine push pop.
Interfaces Afkobling af programkomponenter (eksempel: Comparable)
Programmering med interfaces Separering af specifikation, anvendelse og implementation.
Programmering med interfaces – en stak og en HP-regnemaskine push pop.
Collectionklasser Klassifikation og anvendelse. dIntProg, F08Collectionklasser.2 Samlinger af objekter Objektreferencer –for at holde fast i et objekt.
Interfaces – hvorfor, hvad og hvordan?.  Michael E. Caspersen 2003IOOPInterfaces.2 Oversigt Interfaces, hvorfor –Separering af specifikation (interface)
 Jens Bennedsen 2001Multimedie programmering10B.1 Interfaces En ren kontrakt.
DAIMIIntroducerende Objektorienteret Programmering8B.1 Interfaces En ren kontrakt.
Programmering med interfaces – en stak og en HP-regnemaskine push pop.
Containerklasser – klassifikation og brug.  Michael E. Caspersen, 2003IOOPContainerklasser.2 Mange objekter Containerklasser –antag at man skal repræsentere.
Præsentationens transcript:

Begreber og Redskaber 9

Plan for idag I dag: Datastrukturer Tabeller Lister, mængder, maps, grafer Hægtede lister

Tabeller Person tabel[] = new Person[100]; tabel[0] = new person(”Mads Rosendahl”); …. osv Tabeller er gode hvis man har en rimelig viden om maksimalt antal elementer. Bedst hvis der tilføjes, men ikke fjernes elementer

Datastruktur Indsæt element Fjern element Søg efter elementer Datastruktur Indsæt Fjern Søg

Datastrukturer: lister Lister –Elementer i en rækkefølge –Indsæt først eller sidst –Gennemløb i rækkefølge –Eksempel: Stak: Sidst ind først ud Sæt ind og tag ud fra samme ende –Eksempel: Kø: Først ind først ud Sæt ind i den ene ende og tag ud fra den anden –Eksempel: Dequeue. Man kan sætte ind og tage ud fra begge ender.

Datastrukturer: Mængder Samling af elementer, typisk sorteret eller ordnet efter elementernes værdi (f.eks en nøgle) Eksempel: Hob – Rå samling Eksempel: Mængde – et element kan højst være der en gang Eksempel: Ordnet mængde Eksempel: Samling af personer sorteret efter cpr nummer

Datastrukturer: grafer Grafer: elementer kender/refererer til visse andre F.eks punkter/byer med afstande. Mere generelt: Databaser med elementer hvor der kan søges med forespørgsler

Lister Samling af objekter [109, 27, 67, 78, 15 ] [Karl Børge, Knud, Orla] Elementerne står i en rækkefølge

LinkedList og Link

Class Link og LinkedList class Link { Object data; Link next; } public class LinkedList{ private Link first; public LinkedList(){ first = null; } public void addFirst(Object obj){ Link newLink = new Link(); newLink.data = obj; newLink.next = first; first = newLink; }

Figure 4 Adding a Link to the Head of a Linked List Indsæt først i listen

Figure 5 Removing a Link from the Head of a Linked List Fjern første element i liste

Hent første, fjern første public Object getFirst(){ if (first == null) throw new NoSuchElementException(); return first.data; } public Object removeFirst(){ if (first == null) throw new NoSuchElementException(); Object obj = first.data; first = first.next; return obj; }

Iterator En ”Iterator” giver måde at gennemløbe en liste på interface ListIterator { Object next(); boolean hasNext(); void add(Object obj); void remove(); void set(Object obj); } F.eks. int i=0; ListIterator lit = lst.listIterator(); while(lit.hasNext()){ Object elm = lit.next(); i++; System.out.println(i+": "+elm); }

Figure 2 A List Iterator Iterator

LinkedListIterator class LinkedListIterator implements ListIterator{ LinkedList list; Link position; Link previous; public LinkedListIterator(LinkedList list){ this.list = list; position = null; previous = null; }

next, hasnext public Object next(){ if (!hasNext()) throw new NoSuchElementException(); previous = position; // remember for remove if (position == null) position = list.first; else position = position.next; return position.data; } public boolean hasNext(){ if (position == null) return list.first != null; else return position.next != null; }

Figure 7 Adding a Link to the Middle of a Linked List Indsæt element

public void add(Object obj){ if (position == null) { list.addFirst(obj); position = list.first; } else { Link newLink = new Link(); newLink.data = obj; newLink.next = position.next; position.next = newLink; position = newLink; } previous = null; }

Figure 6 Removing a Link from the Middle of a Linked List Fjern element

public void remove(){ if (position == list.first){ list.removeFirst(); position = list.first; } else { if (previous == null) throw new IllegalStateException(); previous.next = position.next; position = previous; } previous = null; }

Indre klasser Man kan have klasser inde i klasser. Et objekt af den indre klasse kender så til variable i objektet for den ydre klasse. public class LinkedList{ public ListIterator listIterator(){ return new LinkedListIterator(); } private class LinkedListIterator implements ListIterator {.. }