GRASS GIS 8 Programmer's Manual
8.3.2(2024)-exported
Loading...
Searching...
No Matches
btree/next.c
Go to the documentation of this file.
1
#include <grass/btree.h>
2
3
int
btree_next
(BTREE *B,
void
**key,
void
**data)
4
{
5
int
q;
6
7
if
(B->N <= 0)
8
return
0;
9
10
/* if rewound, start at root and go all the way to the left */
11
if
(B->cur == 0)
12
B->cur = 1;
13
14
/* go to the right */
15
else
16
B->cur = B->node[B->cur].right;
17
18
if
(B->cur == 0)
/* no more */
19
return
0;
20
21
if
(B->cur < 0)
/* thread. stop here */
22
B->cur = -(B->cur);
23
else
/* go all the way left */
24
while
((q = B->node[B->cur].left))
25
B->cur = q;
26
27
*key = B->node[B->cur].key;
28
*data = B->node[B->cur].data;
29
30
return
1;
31
}
btree_next
int btree_next(BTREE *B, void **key, void **data)
Definition
btree/next.c:3
btree
next.c
Generated on Sat Nov 9 2024 17:44:25 for GRASS GIS 8 Programmer's Manual by
1.12.0