Herunterladen - Ingo-Bartling.de
Herunterladen - Ingo-Bartling.de
Herunterladen - Ingo-Bartling.de
Erfolgreiche ePaper selbst erstellen
Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.
Informatik-11.Klasse Kompositum<br />
Struktur am Beispiel einer Liste<br />
Schyren-Gymnasium, Pfaffenhofen / Ilm<br />
1
Informatik-11.Klasse Kompositum<br />
Ablauf beim Anhängen<br />
Einfügen(neues Datenelement )<br />
Aktiv<br />
Wartend<br />
Liste<br />
- erstes<br />
Datenknoten<br />
- nachfolger<br />
- inhalt<br />
Datenknoten<br />
- nachfolger<br />
- inhalt<br />
Abschluss<br />
Daten<br />
Daten<br />
Schyren-Gymnasium, Pfaffenhofen / Ilm<br />
2
Informatik-11.Klasse Kompositum<br />
Ablauf beim Anhängen<br />
Einfügen(neues Datenelement )<br />
Aktiv<br />
Wartend<br />
Liste<br />
- erstes<br />
Datenknoten<br />
- nachfolger<br />
- inhalt<br />
Datenknoten<br />
- nachfolger<br />
- inhalt<br />
Abschluss<br />
Daten<br />
Daten<br />
Schyren-Gymnasium, Pfaffenhofen / Ilm<br />
3
Informatik-11.Klasse Kompositum<br />
Ablauf beim Anhängen<br />
Einfügen(neues Datenelement )<br />
Aktiv<br />
Wartend<br />
Liste<br />
- erstes<br />
Datenknoten<br />
- nachfolger<br />
- inhalt<br />
Datenknoten<br />
- nachfolger<br />
- inhalt<br />
Abschluss<br />
Daten<br />
Daten<br />
Schyren-Gymnasium, Pfaffenhofen / Ilm<br />
4
Informatik-11.Klasse Kompositum<br />
Ablauf beim Anhängen<br />
Liste<br />
- erstes<br />
Aha, ich muss ein neues<br />
Listenelement mit mir als<br />
Nachfolger machen und meinen<br />
Vorgänger darüber Bescheid geben:<br />
return = new Datenknoten(this,Daten);<br />
Datenknoten<br />
- nachfolger<br />
- inhalt<br />
Datenknoten<br />
- nachfolger<br />
- inhalt<br />
Abschluss<br />
Daten<br />
Daten<br />
Schyren-Gymnasium, Pfaffenhofen / Ilm<br />
5
Informatik-11.Klasse Kompositum<br />
Ablauf beim Anhängen<br />
Liste<br />
- erstes<br />
Wie soll ich<br />
meinen neuen<br />
Nachfolger<br />
kennenlernen?<br />
Ich weiß es und<br />
sage es dir.<br />
LE ist <strong>de</strong>in neuer<br />
Nachfolger<br />
Datenknoten<br />
Datenknoten<br />
- nachfolger<br />
- inhalt<br />
Datenknoten<br />
- nachfolger<br />
- inhalt<br />
Abschluss<br />
Daten<br />
Daten<br />
Schyren-Gymnasium, Pfaffenhofen / Ilm<br />
6
Informatik-11.Klasse Kompositum<br />
Ablauf beim Anhängen<br />
Liste<br />
- erstes<br />
Hallo aufrufen<strong>de</strong>r<br />
Vorgänger, vielleicht weißt<br />
du es schon, aber ich wollte<br />
dir sagen, dass ich <strong>de</strong>in<br />
Nachfolger bin.<br />
nachfolger = neuerNachfolger;<br />
Jetzt muss ich aber meinem<br />
Vorgänger Bescheid geben.<br />
Listenelement<br />
Listenelement<br />
Listenelement<br />
Abschluss<br />
- nachfolger<br />
- inhalt<br />
- nachfolger<br />
- inhalt<br />
- nachfolger<br />
- inhalt<br />
Daten<br />
Daten<br />
Daten<br />
Schyren-Gymnasium, Pfaffenhofen / Ilm<br />
7
Informatik-11.Klasse Kompositum<br />
Ablauf beim Anhängen<br />
Liste<br />
- erstes<br />
nachfolger = nachfolger;<br />
Listenelement<br />
Listenelement<br />
Listenelement<br />
Abschluss<br />
- nachfolger<br />
- inhalt<br />
- nachfolger<br />
- inhalt<br />
- nachfolger<br />
- inhalt<br />
Daten<br />
Daten<br />
Daten<br />
Schyren-Gymnasium, Pfaffenhofen / Ilm<br />
8
Informatik-11.Klasse Kompositum<br />
Ablauf beim Anhängen<br />
Liste<br />
- erstes<br />
erstes = Nachfolger;<br />
Listenelement<br />
Listenelement<br />
Listenelement<br />
Abschluss<br />
- nachfolger<br />
- inhalt<br />
- nachfolger<br />
- inhalt<br />
- nachfolger<br />
- inhalt<br />
Daten<br />
Daten<br />
Daten<br />
Schyren-Gymnasium, Pfaffenhofen / Ilm<br />
9
Informatik-11.Klasse Kompositum<br />
Ablauf beim Anhängen - Sequenzdiagramm<br />
Liste Datenknoten 1 Datenknoten 2 Abschluss<br />
hintenEinfügen(neu)<br />
hintenEinfügen(neu)<br />
hintenEinfügen(neu)<br />
new()<br />
Datenknoten 3<br />
Datenknoten 3<br />
nächsterSetzen()<br />
Datenknoten 2<br />
nächsterSetzen()<br />
Datenknoten 1<br />
ersterSetzen()<br />
Schyren-Gymnasium, Pfaffenhofen / Ilm<br />
10
Informatik-11.Klasse Kompositum<br />
Vorteile und Nachteile<br />
Vorteile<br />
✓ Das Einfügen und Entnehmen wird <strong>de</strong>n Datenknoten überlassen.<br />
✓ Die Datenknoten können auf unterschiedliche Dateninhalte verweisen.<br />
Nachteile<br />
✓ Alle aufgerufenen Datenknoten blockieren durch ihr Warten auf Antwort <br />
Speicherplatz.<br />
Eine Lösung ohne rekursiven Ansatz, son<strong>de</strong>rn das die Liste sich darum <br />
kümmert, verhin<strong>de</strong>rt das.<br />
Schyren-Gymnasium, Pfaffenhofen / Ilm<br />
11
Informatik-11.Klasse Kompositum<br />
Spezialfälle<br />
Unterschie<strong>de</strong><br />
✓ Art <strong>de</strong>r Verkettung (einfach; doppelt – mit Vor- und Nachgänger)<br />
✓ Neue Elemente wer<strong>de</strong>n vorne hinzugefügt<br />
✓ Neue Element wer<strong>de</strong>n hinten hinzugefügt<br />
✓ Elemente wer<strong>de</strong>n automatisch vorne entnommen<br />
✓ Elemente wer<strong>de</strong>n automatisch hinten entnommen<br />
Schyren-Gymnasium, Pfaffenhofen / Ilm<br />
12
Informatik-11.Klasse Kompositum<br />
Son<strong>de</strong>rfall 1 – Schlange (queue)<br />
FIFO First in, First Out<br />
Hinzufügen heißt put(newEl) <br />
Entnehmen heißt put()<br />
Schyren-Gymnasium, Pfaffenhofen / Ilm<br />
13
Informatik-11.Klasse Kompositum<br />
Son<strong>de</strong>rfall 2 – Stapel (Stack)<br />
LIFO Last in, First Out<br />
Hinzufügen heißt push(newEl) <br />
Entnehmen heißt pop()<br />
Schyren-Gymnasium, Pfaffenhofen / Ilm<br />
14
Informatik-11.Klasse Kompositum<br />
Aufgabe (Das muss je<strong>de</strong>r können)<br />
Implementiere<br />
Eine Queue zur Verwaltung von Taxis (Nr,<br />
Name) mit Hilfe <strong>de</strong>s Kompositum-Musters.<br />
Einen Stack zur Verwaltung von Fahrgästen<br />
(Name, Fahrziel).<br />
Schyren-Gymnasium, Pfaffenhofen / Ilm<br />
15