bool tree_iterator_prev_n(void* Iterator, size_t count) { ASSERT(Iterator != NULL); tree_iterator* iterator = Iterator; ASSERT(iterator->tree != NULL); while (iterator->node && count--) iterator->node = tree_node_prev(iterator->node); return iterator->node != NULL; }
bool tree_iterator_prev(void* Iterator) { ASSERT(Iterator != NULL); tree_iterator* iterator = Iterator; ASSERT(iterator->tree != NULL); if (iterator->node) return (iterator->node = tree_node_prev(iterator->node)) != NULL; return false; }
bool tr_itor_prev(tr_itor* itor) { ASSERT(itor != NULL); if (!itor->node) tr_itor_last(itor); else itor->node = tree_node_prev(itor->node); return itor->node != NULL; }