Rückgängig und der Drucker
Sie drücken in einem Textprogramm dreimal Rückgängig. Das Programm nimmt Ihre letzten Schritte zurück, den jüngsten zuerst.
Im Büro schicken zehn Personen Aufträge an einen Drucker. Er druckt sie in der Reihenfolge, in der sie ankamen.
Zwei Aufgaben, zwei Ordnungen. Dafür gibt es zwei Datenstrukturen.
Am Ende dieser Lektion
Notiz
Ich kann für eine Aufgabe einen Stapel oder eine Schlange wählen.
Schlüsselwörter
| Begriff | Was er bedeutet | Beispiel |
|---|---|---|
| Stapel | Einträge, von denen der zuletzt abgelegte zuerst herauskommt | |
| Schlange | Einträge, von denen der zuerst angekommene zuerst herauskommt | |
| Push | einen Eintrag oben auf den Stapel legen | schritte.append("x") |
| Pop | den obersten Eintrag herausnehmen | schritte.pop() |
| Enqueue | sich hinten in die Schlange einreihen | |
| Dequeue | den vordersten Eintrag aus der Schlange nehmen |
Die Zellen, die Lernende ausfüllen, bleiben in dieser Vorschau leer.
Ein Stapel: zuletzt rein, zuerst raus
Denken Sie an einen Stapel Teller. Sie legen oben auf und nehmen oben ab. Der unterste Teller bleibt am längsten liegen.
Ein Stapel arbeitet genauso. Push legt oben auf, Pop nimmt oben ab. In Python nutzen Sie dafür append und pop() einer Liste.
Probieren Sie es: Rückgängig als Stapel
# Ein Stapel: Rückgängig in einem Textprogramm.
schritte = []
schritte.append("Titel getippt")
schritte.append("Bild eingefügt")
schritte.append("Tabelle gelöscht")
print("Alle Schritte:", schritte)
letzter = schritte.pop() # holt den obersten Schritt und entfernt ihn
print("Rückgängig:", letzter)
print("Übrig:", schritte)
# Drücken Sie Run, ändern Sie dann nichts, sondern rufen Sie pop() ein zweites Mal auf.
Beispiel: drei Schritte zurücknehmen
| Aktion | Stapel danach (oben rechts) | Herausgenommen |
|---|---|---|
| Push "Titel getippt" | Titel getippt | - |
| Push "Bild eingefügt" | Titel getippt, Bild eingefügt | - |
| Push "Tabelle gelöscht" | Titel getippt, Bild eingefügt, Tabelle gelöscht | - |
| Pop | Titel getippt, Bild eingefügt | Tabelle gelöscht |
| Pop | Titel getippt | Bild eingefügt |
Die Zellen, die Lernende ausfüllen, bleiben in dieser Vorschau leer.
Eine Schlange: zuerst rein, zuerst raus
Eine Schlange kennen Sie von der Kasse. Wer zuerst kam, wird zuerst bedient. Neue Leute stellen sich hinten an.
Eine Schlange in einem Programm folgt dieser Regel. Enqueue reiht hinten ein, Dequeue nimmt vorn ab. Mit einer Python-Liste geht das über append und pop(0).
Probieren Sie es: Druckaufträge als Schlange
# Eine Schlange: die Druckaufträge einer Abteilung.
auftraege = []
auftraege.append("Rechnung")
auftraege.append("Vertrag")
auftraege.append("Lieferschein")
dran = auftraege.pop(0) # holt den vordersten Auftrag und entfernt ihn
print("Wird gedruckt:", dran)
print("Wartet noch:", auftraege)
# Lassen Sie jetzt auch den nächsten Auftrag drucken.
Ein häufiger Fehler
Warnung
Viele denken, Stapel und Schlange seien dasselbe, nur anders benannt. Der Unterschied liegt darin, von welcher Seite Sie abnehmen. Beim Stapel kommt der jüngste Eintrag zuerst heraus, bei der Schlange der älteste. Wählen Sie falsch, wird der falsche Auftrag zuerst gedruckt.
Welche Struktur für welche Aufgabe
| Aufgabe | Wer kommt zuerst dran? | Struktur |
|---|---|---|
| Rückgängig im Programm | der jüngste Schritt | Stapel |
| Seiten im Browser zurückgehen | die zuletzt besuchte Seite | Stapel |
| Druckaufträge | der älteste Auftrag | Schlange |
| Support-Tickets nach Eingang | das älteste Ticket | Schlange |
Die Zellen, die Lernende ausfüllen, bleiben in dieser Vorschau leer.