create.c 478 B

123456789101112131415161718192021222324
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <grass/btree.h>
  4. int btree_create(BTREE * B, int (*cmp) (const void *, const void *), int incr)
  5. {
  6. if (incr <= 0)
  7. incr = 1;
  8. B->N = 0;
  9. B->cur = 0;
  10. B->tlen = B->incr = incr;
  11. /* must have at least 2 nodes, since node[0] is never used */
  12. if (B->tlen == 1)
  13. B->tlen = 2;
  14. B->cmp = cmp;
  15. B->node = (BTREE_NODE *) malloc(B->tlen * sizeof(BTREE_NODE));
  16. if (B->node == NULL)
  17. return 0;
  18. return 1;
  19. }