void centroidset_printset(centroidset_t *centroidset) { centroid_t *centroid; jsw_rbtrav_t *rbtrav; rbtrav = jsw_rbtnew(); centroid = jsw_rbtfirst(rbtrav, centroidset); printf("mean %f\n", centroid->mean); while ((centroid = jsw_rbtnext(rbtrav)) != NULL) { printf("mean %f\n", centroid->mean); } }
/* Note that this function cannot handle NULL values in the tree */ int cx_rbtreeWalk(cx_rbtree tree, cx_walkAction callback, void* userData) { jsw_rbtrav_t tdata; void* data; /* Move to first */ data = jsw_rbtfirst(&tdata, (jsw_rbtree_t*)tree); if (data) { if (!callback(data, userData)) { return 0; } /* Walk values */ while((data = jsw_rbtnext(&tdata))) { if (!callback(data, userData)) { return 0; } } } return 1; }