|
PROCEDURE Next(tree: Tree; key: Objects.Object; VAR object: Objects.Object) : BOOLEAN; (* returns lowest object in tree that is > key *) VAR node: Node; PROCEDURE NextNode(node: Node) : BOOLEAN; BEGIN IF node # NIL THEN IF tree.compare(key, node.object) < 0 THEN IF ~NextNode(node.left) THEN object := node.object; RETURN TRUE END; ELSE RETURN NextNode(node.right) END; END; RETURN FALSE END NextNode; BEGIN (* Next *) ASSERT(tree.comparable(key)); RETURN NextNode(tree.root) END Next; |
Copyright © 1999, 2004 Andreas F. Borchert, in HTML konvertiert am 28.01.2005 |