PROCEDURE First(tree: Tree;
VAR object: Objects.Object) : BOOLEAN;
(* returns first object in tree *)
VAR
node: Node;
BEGIN
IF tree.root = NIL THEN RETURN FALSE END;
node := tree.root;
WHILE node.left # NIL DO
node := node.left;
END;
object := node.object;
RETURN TRUE
END First;
PROCEDURE Last(tree: Tree;
VAR object: Objects.Object) : BOOLEAN;
(* returns last object in tree *)
VAR
node: Node;
BEGIN
IF tree.root = NIL THEN RETURN FALSE END;
node := tree.root;
WHILE node.right # NIL DO
node := node.right;
END;
object := node.object;
RETURN TRUE
END Last;
|