int main() { RTREENODE* root = RTreeCreate(); int i, nhits; fprintf (stdout, "nrects = %d ", nrects); /* Insert all the testing data rects */ for(i=0; i<nrects; i++){ RTreeInsertRect(&rects[i], /* the mbr being inserted */ i+10, /* i+1 is mbr ID. ID MUST NEVER BE ZERO */ &root, /* the address of rtree's root since root can change undernieth*/ 0 /* always zero which means to add from the root */ ); } nhits = RTreeSearch(root, &search_rect, MySearchCallback, 0); fprintf (stdout, "Search resulted in %d hits ", nhits); RTreeDestroy (root); return 0; }
int RtreeUdiDestroy(control_t *control) { int i; assert(control); for (i = 0; i < NARGS && (*control)[i].arg != 0; i++) { if ((*control)[i].tree) RTreeDestroy((*control)[i].tree); } free(control); control = NULL; return TRUE; }
int main(int argc, char* argv[], char** envp) { rtree_t *rt1 = NULL; size_t arr[10] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10}; size_t arr_len = sizeof(arr) / sizeof(size_t); size_t find1 = arr[0]; size_t find2 = arr[9]; printf("\n[%s %s %d]RTreeCreate\n", __FILE__, __func__, __LINE__); /*__________ RTreeCreate __________*/ rt1 = RTreeCreate(&IsBefore); printf("sizeof(rt1):%lu\n", sizeof(rt1)); /*_________________________ END RTreeCreate _______________________*/ printf("\n[%s %s %d]RTreeIsEmpty\n", __FILE__, __func__, __LINE__); /*_____________________________ RTreeIsEmpty _______________________*/ printf("RTreeIsEmpty(rt1): %i, expected: 0\n", RTreeIsEmpty(rt1)); /*_________________________ END RTreeIsEmpty _______________________*/ printf("\n[%s %s %d]RTreeHeight\n", __FILE__, __func__, __LINE__); /*_____________________________ RTreeHeight _______________________*/ printf("RTreeHeight(rt1): %d, excpected: -1\n", RTreeHeight(rt1)); /*_________________________ END RTreeHeight _______________________*/ printf("\n[%s %s %d]RTreeSize\n", __FILE__, __func__, __LINE__); /*________________ RTreeSize _______________________*/ printf("RTreeSize(rt1): %lu, expected:0\n", RTreeSize(rt1)); /*______________END RTreeSize _______________________*/ printf("\n[%s %s %d]RTreeFind\n", __FILE__, __func__, __LINE__); /*________________ RTreeFind _______________________*/ rt1->r.data = (void*)&arr[0]; printf("RTreeFind(rt1, (void*)&find1: %p, expected:nil\n", *(size_t*)RTreeFind(rt1, (void*)&find1)); /*______________END RTreeFind _______________________*/ printf("\n[%s %s %d]RTreeForEach\n", __FILE__, __func__, __LINE__); /*________________ RTreeForEach _______________________*/ RTreeForEach(rt1, &ActionFunc, (void*)1); /*______________END RTreeForEach _______________________*/ printf("\n[%s %s %d]RTreeDestroy\n", __FILE__, __func__, __LINE__); /*________________ RTreeDestroy __________*/ RTreeDestroy(rt1); /*____________ END RTreeDestroy _______________________*/ return(0); }
int main(int argc, char* argv[], char** envp) { rtree_t *rt1 = NULL; /* size_t arr[10] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};*/ size_t arr[10] = {2, 1, 3, 4, 5, 6, 7, 8, 9, 10}; /* size_t arr_len = sizeof(arr) / sizeof(size_t);*/ int i = 0; size_t find1 = arr[0]; /* size_t find2 = arr[9];*/ printf("\n[%s %s %d]RTreeCreate\n", __FILE__, __func__, __LINE__); /*__________ RTreeCreate __________*/ rt1 = RTreeCreate(&IsBefore); printf("sizeof(rt1):%lu\n", sizeof(rt1)); /*_________________________ END RTreeCreate _______________________*/ printf("\n[%s %s %d]RTreeIsEmpty\n", __FILE__, __func__, __LINE__); /*_____________________________ RTreeIsEmpty _______________________*/ printf("RTreeIsEmpty(rt1): %i, expected: 1\n", RTreeIsEmpty(rt1)); /*_________________________ END RTreeIsEmpty _______________________*/ printf("\n[%s %s %d]RTreeHeight\n", __FILE__, __func__, __LINE__); /*_____________________________ RTreeHeight _______________________*/ printf("RTreeHeight(rt1): %d, excpected: -1\n", RTreeHeight(rt1)); /*_________________________ END RTreeHeight _______________________*/ printf("\n[%s %s %d]RTreeSize\n", __FILE__, __func__, __LINE__); /*________________ RTreeSize _______________________*/ printf("RTreeSize(rt1): %lu, expected:0\n", RTreeSize(rt1)); /*______________END RTreeSize _______________________*/ printf("\n[%s %s %d]RTreeFind\n", __FILE__, __func__, __LINE__); /*________________ RTreeFind _______________________*/ printf("RTreeFind(rt1, (void*)&find1: %p, expected:nil\n", RTreeFind(rt1, (void*)&find1)); /*______________END RTreeFind _______________________*/ printf("\n[%s %s %d]RTreeForEach\n", __FILE__, __func__, __LINE__); /*________________ RTreeForEach _______________________*/ RTreeForEach(rt1, &ActionFunc, (void*)1); /*______________END RTreeForEach _______________________*/ printf("\n[%s %s %d]RTreeInsert 1\n", __FILE__, __func__, __LINE__); /*__RTreeInsert 1__*/ printf("before insert - RTreeIsEmpty(rt1): %i, expected: 1\n", RTreeIsEmpty(rt1)); RTreeInsert(rt1, (void*)&arr[4]); printf("after insert - RTreeIsEmpty(rt1): %i, expected: 0\n", RTreeIsEmpty(rt1)); printf("RTreeHeight(rt1): %d, excpected: 0\n", RTreeHeight(rt1)); printf("RTreeSize(rt1): %lu, expected:1\n", RTreeSize(rt1)); /***END RTreeInsert 1 ***/ /*________________ RTreeInsert 2 _______________________*/ START("RTreeInsert 2"); for(i = 0; i < 2; ++i) { RTreeInsert(rt1, (void*)&arr[i]); printf("\nafter insert - RTreeIsEmpty(rt1): %i, expected: 0\n", RTreeIsEmpty(rt1)); printf("RTreeHeight(rt1): %d, excpected:%i \n", RTreeHeight(rt1), i + 1); printf("RTreeSize(rt1): %lu, expected: %i\n", RTreeSize(rt1), i + 2); } /*______________END RTreeInsert 2 _______________________*/ /*________________ RTreeForEach _______________________*/ RTreeForEach(rt1, &ActionFunc, (void*)1); /*______________END RTreeForEach _______________________*/ printf("\n[%s %s %d]RTreeDestroy\n", __FILE__, __func__, __LINE__); /*________________ RTreeDestroy __________*/ RTreeDestroy(rt1); /*____________ END RTreeDestroy _______________________*/ return(0); }