home *** CD-ROM | disk | FTP | other *** search
/ Amiga ISO Collection / AmigaUtilCD2.iso / Programming / Misc / OB3.2D2.DMS / in.adf / Module / Stacks.mod < prev    next >
Encoding:
Text File  |  1994-08-05  |  1.1 KB  |  55 lines

  1. (*-------------------------------------------------------------------------*)
  2. (*                                                                         *)
  3. (*  Amiga Oberon Interface Module: Stacks             Date: 02-Nov-92      *)
  4. (*                                                                         *)
  5. (*   © 1992 by Fridtjof Siebert                                            *)
  6. (*                                                                         *)
  7. (*-------------------------------------------------------------------------*)
  8.  
  9. MODULE Stacks;
  10.  
  11. IMPORT LL * := LinkedLists;
  12.  
  13. TYPE 
  14.   Stack * = POINTER TO StackDesc;
  15.   StackDesc * = RECORD (LL.ListDesc) END;
  16.   
  17.   Node * = POINTER TO NodeDesc;
  18.   NodeDesc * = RECORD (LL.NodeDesc) END;
  19.  
  20.  
  21. PROCEDURE Create * (): Stack;
  22. VAR
  23.   s: Stack;
  24. BEGIN
  25.   NEW(s); RETURN s;
  26. END Create;
  27.  
  28.               
  29. PROCEDURE (s: Stack) Push * (x: Node);
  30. BEGIN  
  31.   s.AddHead(x);
  32. END Push;  
  33.  
  34.  
  35. PROCEDURE (s: Stack) Pop * (): Node;
  36. VAR 
  37.   n: LL.Node;
  38. BEGIN  
  39.   n := s.RemHead();
  40.   RETURN n(Node);  
  41. END Pop;  
  42.  
  43.  
  44. PROCEDURE (s: Stack) Top * (): Node;
  45. VAR 
  46.   n: LL.Node;
  47. BEGIN  
  48.   n := s.head;
  49.   RETURN n(Node);  
  50. END Top;  
  51.  
  52.  
  53. END Stacks.
  54.  
  55.