TYPE queue = liste; PROCEDURE enqueue(x: atom; VAR q: queue); VAR p: queue; BEGIN NEW(p); IF q = NIL THEN q := p ELSE p^.nach := q^.nach END; q^.nach := p; q := p; p^.wert := x; END enqueue; PROCEDURE dequeue(VAR x: atom; VAR q: queue); VAR p: queue; BEGIN p := q^.nach; x := p^.wert; IF q = p THEN q := NIL ELSE q^.nach := p^.nach END; DISPOSE(p); END dequeue;