7.8.8 Backing Up to the Previous Node |
|
276. <TBST traverser back up function 276> =
void *
tbst_t_prev (struct tbst_traverser *trav)
{
assert (trav != NULL);
if (trav->tbst_node == NULL)
return tbst_t_last (trav, trav->tbst_table);
else if (trav->tbst_node->tbst_tag[0] == TBST_THREAD)
{
trav->tbst_node = trav->tbst_node->tbst_link[0];
return trav->tbst_node != NULL ? trav->tbst_node->tbst_data : NULL;
}
else
{
trav->tbst_node = trav->tbst_node->tbst_link[0];
while (trav->tbst_node->tbst_tag[1] == TBST_CHILD)
trav->tbst_node = trav->tbst_node->tbst_link[1];
return trav->tbst_node->tbst_data;
}
}
This code is included in 268.
7.8.7 Advancing to the Next Node
|
7.8 Traversal
|
7.9 Copying
|