| 123456789101112131415161718 |
- GENERIC DEFINITION MODULE GStack (T : TYPE);
- (* A generic linked stack over a type parameter T. Instantiated as
- IntStack = GStack(INTEGER) and CharStack = GStack(CHAR). *)
- TYPE
- Node = POINTER TO NodeRec;
- NodeRec = RECORD
- val : T;
- next : Node;
- END;
- Stack = RECORD
- top : Node;
- depth : INTEGER;
- END;
- PROCEDURE Init(VAR s : Stack);
- PROCEDURE Push(VAR s : Stack; v : T);
- PROCEDURE Pop(VAR s : Stack; VAR v : T) : BOOLEAN;
- PROCEDURE Depth(VAR s : Stack) : INTEGER;
- END GStack.
|