showcase23lib.def 528 B

1234567891011121314151617181920
  1. GENERIC DEFINITION MODULE DList (T : TYPE);
  2. TYPE
  3. Node = POINTER TO NodeRec;
  4. NodeRec = RECORD
  5. val : T;
  6. prev, next : Node;
  7. END;
  8. List = RECORD
  9. head, tail : Node;
  10. count : INTEGER;
  11. END;
  12. PROCEDURE Init(VAR l : List);
  13. PROCEDURE Append(VAR l : List; v : T);
  14. PROCEDURE Prepend(VAR l : List; v : T);
  15. PROCEDURE Count(VAR l : List) : INTEGER;
  16. PROCEDURE Get(VAR l : List; i : INTEGER) : T;
  17. PROCEDURE First(VAR l : List) : T;
  18. PROCEDURE Last(VAR l : List) : T;
  19. PROCEDURE Reverse(VAR l : List);
  20. END DList.