| 123456789101112131415161718192021222324252627 |
- GENERIC IMPLEMENTATION MODULE GStack;
- 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;
- PROCEDURE Depth(VAR s : Stack) : INTEGER;
- BEGIN
- RETURN s.depth
- END Depth;
- END GStack.
|