(****************************************************************) (* *) (* Gardens Point Modula-2 Library Definition *) (* *) (* *) (* (c) Copyright 1992 Faculty of Information Technology *) (* Queensland University of Technology *) (* *) (* Permission is granted to use, copy and change this *) (* program as long as the copyright message is left intact *) (* *) (****************************************************************) DEFINITION MODULE CardTrees; FROM CardSequences IMPORT Sequence; TYPE Tree; (* pointer to root, or NIL for empty tree *) PROCEDURE InitTree(VAR tre : Tree); (* postcondition : tre is an empty tree *) PROCEDURE IsEmpty(tre : Tree) : BOOLEAN; (* postcondition : returns "tre is the empty Tree" *) PROCEDURE Insert(VAR tre : Tree; element : CARDINAL); (* precondition : tre is a valid tree, possibly empty *) (* postcondition: element is in tree & tree is ordered *) PROCEDURE Delete(VAR tre : Tree; element : CARDINAL); (* precondition : tre is a valid ordered tree, or empty *) (* postcondition: element not in tree, tree still valid *) PROCEDURE Lookup(tre : Tree; element : CARDINAL) : BOOLEAN; (* precondition : tre is a valid ordered tree, or empty *) PROCEDURE MakeSequence(tre : Tree; VAR seq : Sequence); (* postcondition : seq has preorder contents of tre *) END CardTrees.