Schlangen (5)


Beim Anhängen an eine Schlange erzeugen wir ein neues Listenelement. Bei einer nichtleeren Schlange hängen wir es hinten an; bei einer leeren Schlange wird es der Kopf. In beiden Fällen ist es das letzte Listenelement, also der Schwanz.
Einhängen
PROCEDURE enqueue(x: atom; VAR q: queue);
VAR p: liste;
BEGIN WITH q^ 
      DO NEW(p); p^.wert := x; p^.nach := NIL;
         IF hd = NIL THEN hd := p ELSE tl^.nach := p
         END;
         tl := p; l := l + 1;
      END;
END enqueue;
Beim Austragen aus einer (nichtleeren) Schlange hängen wir das Kopfelement ab; ist die Schlange dann leer geworden, so hat sie auch keinen Schwanz mehr!
Aushängen
PROCEDURE dequeue(VAR y: atom; VAR q: queue);
VAR p: liste;
BEGIN WITH q^ 
      DO p := hd; y := p^.wert; hd := p^.nach;
         IF hd = NIL THEN tl := NIL
         END; 
         DISPOSE(p); l := l - 1;
      END;
END dequeue;


zurück | Inhalt | Index | vor | Vorlesung

Klaus Lagally, 22. Februar 2000, 19:36