Download de presentatie
De presentatie wordt gedownload. Even geduld aub
GepubliceerdJoke Timmermans Laatst gewijzigd meer dan 10 jaar geleden
1
Inleidend probleem Data structuur (hiërarchie van classes)
Snel algoritme zie paragraaf 4.4
2
Het probleem Een DNA molecule bestaat uit vele tienduizenden aminozuren. Bevat het molecule herhalende reeksen van opeenvolgende aminozuren met lengte 4?
3
Mogelijke oplossingen
Drie geneste for-statements. Plaats alle reeksen met lengte 4 in een array en sorteer het array. Identieke reeksen staan achter elkaar in het array. Maak gebruik van hashing. (komt nog!) Snelste methode.
4
Abstract Data Types Inhoud: Definitie van type Operatie Definitie ADT
Type beschrijving Interface Klassieke ADT’s Bag / Set Stack, Queue, Deque Map
5
Type Type is een verzameling van waarden.
int: – t/m boolean: true, false char: ‘ ‘, ‘?’, ‘a’, ‘b’, ……. Op waarden kunnen operaties worden uitgevoerd die specifiek zijn voor het type.
6
Operaties De verzameling van operaties op een type
vormen een interface. Signature van een operatie is: naam van de operatie type van de argumenten type van de return-waarde
7
Operaties Een interface is een verzameling signatures.
Een interface bevat geen implementatie. Operaties worden gedefinieerd a.d.h.v. pre- en postcondities, waardoor de properties worden gedefinieerd.
8
Pre- en postcondities Indien aan de precondities van een method is
voldaan, gelden na uitvoering van de method de postcondities. Indien niet aan de precondities is voldaan, is de toestand na uitvoering van de method niet gedefinieerd!
9
Operaties Operaties kunnen polymorf zijn. 3 + 5 t.o.v. 3.0 + 5.0
“abc” + “def” toString() Probleem:
10
Polymorfe variabelen Polymorfe variabele kan een waarde bevatten van
ander type. Inheritance Object obj = new String(“Dit mag”) Interface Bag zakje = new LinkedList(); zakje kan waarden van verschillende types bevatten.
11
Abstract Data Type ADT is een beschrijving van:
een verzameling van waarden een aantal operaties op deze waarden. De class String is een implementatie van het ADT String.
12
Klassieke ADT’s Diverse collecties:
Bag elementen in een Bag hoeven niet uniek te zijn. Set elementen in een Set zijn uniek. Map bevat paren (sleutel, object).
13
Bag, Set en Map Java kent niet de class Bag.
Set en Map zijn een interfaces in Java. Voor Bag kan bijv. een LinkedList worden gebruikt. Voor Set kan een HashSet of een TreeSet worden gebruikt. Voor Map kan bijv. een HashMap of Hashtable worden gebruikt.
14
Stack = stapel Lijst waarbij uitsluitend aan één kant
mutaties kunnen worden uitgevoerd. push() pop()
15
Stack In tegenstelling tot Bag en Set is de volgorde
waarin elementen worden toegevoegd belangrijk. Java kent de class Stack (java.util.Stack)
16
Queue = wachtrij Lijst waarbij toevoegen en verwijderen
aan verschillende uiteinden wordt uitgevoerd. verwijderen toevoegen Java kent geen implementatie voor Queue.
17
Deque Dequeue = double ended queue
Lijst waarbij toevoegen en verwijderen aan beide uiteinden kunnen worden uitgevoerd. verwijderen toevoegen toevoegen verwijderen Java kent geen implementatie voor Deque.
18
Map Interface die operaties beschrijft voor een
verzameling paren (sleutel, object) waarvan de sleutels uniek zijn. De objecten zijn toegankelijk via hun sleutel. Bijv. Object get(Object key) Object remove(Object key)
Verwante presentaties
© 2024 SlidePlayer.nl Inc.
All rights reserved.