| 123456789101112131415161718 |
- GENERIC IMPLEMENTATION MODULE GTwice;
- PROCEDURE Init (VAR s : Stack);
- BEGIN s.top := NIL; s.depth := 0 END Init;
- PROCEDURE Push (VAR s : Stack; v : T);
- VAR n : Node;
- BEGIN NEW(n); n^.val := v; n^.next := s.top;
- s.top := n; s.depth := s.depth + 1
- END Push;
- PROCEDURE Pop (VAR s : Stack; VAR v : T) : BOOLEAN;
- VAR n : Node;
- BEGIN
- IF s.top = NIL THEN RETURN FALSE END;
- n := s.top; v := n^.val; s.top := n^.next;
- s.depth := s.depth - 1; RETURN TRUE
- END Pop;
- END GTwice.
|