PBST Traverser First Initialization - GNU libavl 2.0.2
Author: Ben Pfaff

13.5.1 Starting at the First Node |

Finding the smallest node in the tree is just a matter of starting from the root and descending as far to the left as we can.

    503. <PBST traverser first initializer 503> =
    void *
    pbst_t_first (struct pbst_traverser *trav, struct pbst_table *tree)
    {
      assert (tree != NULL && trav != NULL);

      trav->pbst_table = tree;
      trav->pbst_node = tree->pbst_root;
      if (trav->pbst_node != NULL)
        {
          while (trav->pbst_node->pbst_link[0] != NULL)
            trav->pbst_node = trav->pbst_node->pbst_link[0];
          return trav->pbst_node->pbst_data;
        }
      else
        return NULL;
    }

This code is included in 502 and 546.