home *** CD-ROM | disk | FTP | other *** search
- (*-------------------------------------------------------------------------*)
- (* *)
- (* Amiga Oberon Interface Module: Stacks Date: 02-Nov-92 *)
- (* *)
- (* © 1992 by Fridtjof Siebert *)
- (* *)
- (*-------------------------------------------------------------------------*)
-
- MODULE Stacks;
-
- IMPORT LL * := LinkedLists;
-
- TYPE
- Stack * = POINTER TO StackDesc;
- StackDesc * = RECORD (LL.ListDesc) END;
-
- Node * = POINTER TO NodeDesc;
- NodeDesc * = RECORD (LL.NodeDesc) END;
-
-
- PROCEDURE Create * (): Stack;
- VAR
- s: Stack;
- BEGIN
- NEW(s); RETURN s;
- END Create;
-
-
- PROCEDURE (s: Stack) Push * (x: Node);
- BEGIN
- s.AddHead(x);
- END Push;
-
-
- PROCEDURE (s: Stack) Pop * (): Node;
- VAR
- n: LL.Node;
- BEGIN
- n := s.RemHead();
- RETURN n(Node);
- END Pop;
-
-
- PROCEDURE (s: Stack) Top * (): Node;
- VAR
- n: LL.Node;
- BEGIN
- n := s.head;
- RETURN n(Node);
- END Top;
-
-
- END Stacks.
-
-