/* $Id$ */ /* AVL-trees: trees in which the difference in depth of the left branch and the right branch is at most one. Information in the nodes is represented by a pointer, which is to be supplied by the user. The user is also expected to supply a comparison routine for each AVL tree. This routine is offered two parameters, both pointers, and is expected to return: a negative number if the comparison result is < 0 if the comparison result is = a positive number if the comparison result is > */ typedef struct avl_tree *AVL_tree; /* extern AVL_tree create_avl_tree(int (*cmp)()); Returns a fresh avl_tree structure. 'cmp' will be used as comparison routine for this tree. */ extern AVL_tree create_avl_tree(); /* extern add_to_avl_tree(AVL_tree tree, char *n); Adds the information indicated by 'n' to the avl_tree indicated by 'tree'. */ extern add_to_avl_tree(); /* extern char *find_ngt(AVL_tree tree, char *n); Returns the information in the largest node that still compares <= to 'n', or 0 if not present. */ extern char *find_ngt(); /* extern char *find_nlt(AVL_tree tree, char *n); Returns the information in the largest node that still compares >= to 'n', or 0 if not present. */ extern char *find_nlt(); /* extern char *find_eq(AVL_tree tree, char *n); Returns the information in the node that compares equal to 'n', or 0 if not present. */ extern char *find_eq();