Loading...
Searching...
No Matches
btree/next.c
Go to the documentation of this file.
#include <grass/btree.h>
int btree_next(BTREE *B, void **key, void **data)
{
int q;
if (B->N <= 0)
return 0;
/* if rewound, start at root and go all the way to the left */
if (B->cur == 0)
B->cur = 1;
/* go to the right */
else
B->cur = B->node[B->cur].right;
if (B->cur == 0) /* no more */
return 0;
if (B->cur < 0) /* thread. stop here */
B->cur = -(B->cur);
else /* go all the way left */
while ((q = B->node[B->cur].left))
B->cur = q;
*key = B->node[B->cur].key;
*data = B->node[B->cur].data;
return 1;
}
btree_next
int btree_next(BTREE *B, void **key, void **data)
Definition btree/next.c:3