/* Initializes |trav| for |tree|. Returns data item in |tree| with the greatest value, or |NULL| if |tree| is empty. */ void * tbst_t_last (struct tbst_traverser *trav, struct tbst_table *tree) { assert (tree != NULL && trav != NULL); trav->tbst_table = tree; trav->tbst_node = tree->tbst_root; if (trav->tbst_node != NULL) { while (trav->tbst_node->tbst_tag[1] == TBST_CHILD) trav->tbst_node = trav->tbst_node->tbst_link[1]; return trav->tbst_node->tbst_data; } else return NULL; }