Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
Beide Seiten der vorigen Revision Vorhergehende Überarbeitung Nächste Überarbeitung | Vorhergehende Überarbeitung | ||
faecher:informatik:oberstufe:adt:queue:start [11.10.2021 19:23] – [Struktur einer generischen Schlange] Mareike Nutz | faecher:informatik:oberstufe:adt:queue:start [Unbekanntes Datum] (aktuell) – gelöscht - Externe Bearbeitung (Unbekanntes Datum) 127.0.0.1 | ||
---|---|---|---|
Zeile 1: | Zeile 1: | ||
- | ====== Schlangen ====== | ||
- | {{ : | ||
- | Vor Kassen, an Schaltern, auf der Autobahn und an zahlreichen anderen Orten bilden sich häufig **Schlangen**. | ||
- | |||
- | Die Anzahl der Elemente (Personen, Autos) kann sich dabei ändern, jedoch sind gewisse Regeln einzuhalten: | ||
- | |||
- | Dieses Prinzip nennt man auch " | ||
- | |||
- | Schlangen finden in der Informatik häufig Anwendung, z.B. zur Verwaltung von Arbeitsaufträgen. Ein bekanntes Beispiel dafür ist z.B. eine Druckerwarteschlange: | ||
- | |||
- | ===== Struktur einer generischen Schlange ===== | ||
- | |||
- | Objekte vom Typ '' | ||
- | |||
- | Jede Klasse hat also ihren eigenen Verantwortungsbereich: | ||
- | |||
- | Da die Knoten lediglich Verweise auf Inhaltsobjekte verwalten, können Objekte eines beliebigen Typs in der Schlangenstruktur verwaltet werden. Man spricht von einer **generischen Schlange**. | ||
- | |||
- | |||
- | {{ : | ||
- | |||
- | Die Klasse '' | ||
- | |||
- | Damit das sinnvoll möglich ist, muss die '' | ||
- | |||
- | '' | ||
- | |||
- | Zur Funktionalität der Datenstruktur **Schlange** (**Queue**) gehören, neben den Methoden Einfügen ('' | ||
- | |||
- | Um diese Methoden umsetzen zu können, muss die Knotenklasse der Schlange '' | ||
- | |||
- | |||
- | * Der Nachfolgeknoten muss gesetzt und abgefragt werden können ('' | ||
- | * das jeweilige Inhaltsobjekt muss abgefragt werden können ('' | ||
- | |||
- | Die Knoten der Datenstruktur werden als innere Klasse deklariert, da einzig die Klasse Queue Zugriff auf die Knoten haben soll und benötigt. Queue und QueueNode bilden so in ihrem Zusammenhalt eine logische Einheit mit klar abgegrenzten Aufgaben gegenüber anderen Klassen. | ||