Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Anforderungen an die neue Datenstruktur

Ähnliche Präsentationen


Präsentation zum Thema: "Anforderungen an die neue Datenstruktur"—  Präsentation transkript:

1 Anforderungen an die neue Datenstruktur
Anforderungen, die im Unterricht wiederholt vorgeschlagen wurden, um die bisherige Implementation der Queue zu verbessern: Mitverwaltung von Patientendaten (z.B. Alter, Krankheitsverlauf etc.) Realisierung als dynamische Datenstruktur (immer nur so viel Speicher belegt, wie gerade benötigt) Möglichkeit einer Prioritätenverwaltung (Priority-Queue, z.B. für Notfälle oder fest vereinbarte Termine)

2 1) Der Patient als eigene Klasse
Bisher: Nachname des Patienten als String gespeichert. Besser: Klasse Patient definieren, von der dann Objekte für die einzelnen Patienten erzeugt werden können.

3 1) Der Patient als eigene Klasse
Arbeitsauftrag: Implementieren Sie eine Klasse Patient! Es sollen mindestens die Datenfelder für Nachname, Vorname und Alter vorhanden sein. Erzeugen Sie ein Patientenobjekt. Testen Sie es (inspect)! Wie kann man die Datenfelder füllen?

4 1) Der Patient als eigene Klasse
Um Objekte vom Typ Patient in die Queue einfügen zu können, muss die Datenstruktur geringfügig geändert werden. Das Array und die Parameter und Rückgabetypen der Methoden, bisher vom Typ String, müssen den Typ Object bekommen. Von der Klasse Object erbt jede andere Klasse in Java, so dass jede Klasse auch vom Typ Object ist. Die Queue kann nun jede Art von Daten aufnehmen. Nur die elementaren Datentypen wie boolean, int, char, double (Fließkommazahl) erben nicht von Object.

5 1) Der Patient als eigene Kasse
Objektstruktur (Achtung: Kein Klassendiagramm)

6 1) Der Patient als eigene Klasse
Der Referenzpfeil Referenz: im betreffenden Datenfeld ist nicht der Wert gespeichert. Abgelegt ist im Datenfeld die Speicheradresse, an der sich das referenzierte Objekt befindet. Im Diagramm führt der Referenzpfeil vom Datenfeld zum referenzierten Objekt Eine leere Referenz hat den Wert null. In JAVA werden nur die elementaren Datentypen: boolean, int, char, double (Fließkommazahl) nicht als Referenz gespeichert, sondern direkt in der Variablen / im Datenfeld. Alle anderen Daten werden über Referenzen adressiert.

7 1) Der Patient als eigene Klasse
Arbeitsauftrag: Ändern Sie die Klasse Queue so, dass sie beliebige Objekte aufnehmen kann! Erzeugen Sie nun Objekte vom Typ Patient und stellen Sie sie in die Queue! Prüfen und testen Sie ausführlich (inspect)!

8 2) Dynamische lineare Datenstrukturen
Nachteile statischer Datenstrukturen Die Größe eines Arrays muss vor seiner Erzeugung festgelegt werden: z.B. qArray = new Object[100] Wird das Array erzeugt, wird Speicherplatz für 100 Objektreferenzen reserviert 2 Nachteile: 1) Ggf. wird umsonst reserviert, 2) Ggf. reicht die Größe nicht.

9 2) Dynamische lineare Datenstrukturen
Lösung: Dynamische Datenstrukturen Es wir immer nur so viel Speicherplatz verbraucht, wie gerade benötigt. Erst wenn neue Daten gespeichert werden, wird für sie Speicherplatz reserviert. Wenn Daten gelöscht werden, kann der Speicherplatz sofort wieder freigegeben werden. Insbesondere bei großen Datenmengen (z.B. Filmen notwendig) Außer der Platzersparnis noch weitere Vorteile!

10 2) Dynamische lineare Datenstrukturen
Die Klasse Node (=Knoten) enthält 2 Datenfelder: content ist eine Referenz auf ein beliebiges Inhaltsobjekt, z.B. Patient. nextNode ist eine Referenz auf den nächsten Knoten. Implementationdiagramm: Node -content: Object -nextNode: Node

11 2) Dynamische lineare Datenstrukturen
nextNode content nextNode null content null nachName “Cloeters“ vorName null alter

12 2) Dynamische lineare Datenstrukturen
nextNode content nextNode null content null nachName “Cloeters“ vorName null alter nachName “Lommetz“ vorName null alter

13 2) Dynamische lineare Datenstrukturen
nextNode content nextNode null content nachName “Cloeters“ vorName null alter nachName “Lommetz“ vorName null alter

14 2) Dynamische lineare Datenstrukturen
nextNode content nextNode null content nextNode null content null nachName “Cloeters“ vorName null alter nachName “Lommetz“ vorName null alter

15 2) Dynamische lineare Datenstrukturen
nextNode content nextNode content nextNode null content null nachName “Cloeters“ vorName null alter nachName “Lommetz“ vorName null alter

16 2) Dynamische lineare Datenstrukturen
nextNode content nextNode content nextNode null content null nachName “Cloeters“ vorName null alter nachName “Lommetz“ vorName null alter nachName “Bongartz“ vorName null alter

17 2) Dynamische lineare Datenstrukturen
nextNode content nextNode content nextNode null content nachName “Cloeters“ vorName null alter nachName “Lommetz“ vorName null alter nachName “Bongartz“ vorName null alter

18 2) Dynamische lineare Datenstrukturen
Nun das ganze noch einmal! Dieses Mal mit einer Hilfe für die Implementation in JAVA Aufgeführt sind die JAVA-Befehle zum bewerkstelligen der gezeigten Modifikationen in der Objektstruktur...

19 2) Dynamische lineare Datenstrukturen
nextNode content nextNode null content null node1 nachName “Cloeters“ vorName null alter

20 2) Dynamische lineare Datenstrukturen
nextNode content nextNode null content null node1 nachName “Cloeters“ vorName null alter nachName “Lommetz“ vorName null alter Patient x=new Patient(“Lommetz“);

21 2) Dynamische lineare Datenstrukturen
nextNode content nextNode null content node1 nachName “Cloeters“ vorName null alter nachName “Lommetz“ vorName null alter node1.nextNode.content=x;

22 2) Dynamische lineare Datenstrukturen
nextNode content nextNode null content nextNode null content null node1 nachName “Cloeters“ vorName null alter nachName “Lommetz“ vorName null alter Node y=new Node();

23 2) Dynamische lineare Datenstrukturen
nextNode content nextNode content nextNode null content null node1 nachName “Cloeters“ vorName null alter nachName “Lommetz“ vorName null alter Node y=new Node(); node1.nextNode.nextNode=y;

24 2) Dynamische lineare Datenstrukturen
nextNode content nextNode content nextNode null content null node1 nachName “Cloeters“ vorName null alter nachName “Lommetz“ vorName null alter nachName “Bongartz“ vorName null alter x=new Patient(“Bongartz“);

25 2) Dynamische lineare Datenstrukturen
nextNode content nextNode content nextNode null content node1 nachName “Cloeters“ vorName null alter nachName “Lommetz“ vorName null alter nachName “Bongartz“ vorName null alter x=new Patient(“Bongartz“); node1.nextNode.nextNode.content=x;

26 2) Dynamische lineare Datenstrukturen
Zur Implementierung einer Schlange mit Hilfe der Klasse Node müssen die Datenfelder head und tail vom Typ Node sein Die Methoden isEmpty, enqueue, front, dequeue müssen entsprechend umgeschrieben werden. → hier Verzicht auf genaue Implementierung

27 3) Lineare Datenstruktur: Liste
Ausgangsproblem: Wie kann ich Patienten mit Priorität, d.h. z.B. Notfälle in die Schlange einfügen? Neue Anwendung: Verwaltung der Playlist eines Mediaplayers Aufgabe: Was muss so eine Playlist mindestens für Funktionen (Methoden) anbieten? (Think-Pair- Share, 5min)

28 3) Lineare Datenstruktur: Liste
Mit der Klasse List der Abiturvorgaben lässt sich ein solcher Player realiseren, genauso gut kann aus List aber auch eine Priority-Queue (z.B. für Notfallpatienten) aufgebaut werden. Mit der Klasse List der Abiturvorgaben lässt sich ein solcher Player realiseren, genauso gut kann aus List aber auch eine Priority-Queue (z.B. für Notfallpatienten) aufgebaut werden. Die Klasse List wird im Folgenden erklärt und dokumentiert. Quelle: lehrplannavigator-s-ii/gymnasiale-oberstufe/informatik/ hinweise-und-beispiele/

29 3) Lineare Datenstruktur: Liste

30 3) Lineare Datenstruktur: Liste

31 3) Lineare Datenstruktur: Liste

32 3) Lineare Datenstruktur: Liste

33 3) Lineare Datenstruktur: Liste

34 3) Lineare Datenstruktur: Liste
Sie erhalten jetzt die Klassendokumentation von List als Fotokopie Aufgabe: Die fogende Tabelle vervollständigen! Aktuelles Objekt Listenelemente

35 3) Lineare Datenstruktur: Liste

36 3) Lineare Datenstruktur: Liste


Herunterladen ppt "Anforderungen an die neue Datenstruktur"

Ähnliche Präsentationen


Google-Anzeigen