void rbPrint(struct Tree *T, struct node *ptr) { if (ptr != T->nil) { if (ptr->col == BLACK) { printf(KNRM "%d ", ptr->val); } else { printf(KRED "%d ", ptr->val); } rbPrint(T, ptr->l); rbPrint(T, ptr->r); } }
int main(int argc, char **argv){ RBTree T = NULL; Node *x; int i = 0; for (i = 1; i <= 20; i++) rbInsert(&T, i); // rbInsert(&T,80); // rbInsert(&T,90); // rbInsert(&T,40); // rbDelete(&T,rbSearch(T,130)); // rbDelete(&T,rbSearch(T,90)); rbPrint(T); printf("max=%d\n", rbMaxKey(T)->key); printf("min=%d\n", rbMinKey(T)->key); printf("search=%d\n", rbSearch(T, 16)->key); return 0; }
int main() { struct Tree *T = malloc(sizeof(struct Tree)); T->nil = malloc(sizeof(struct node)); T->nil->col = BLACK; T->nil->p = NULL; T->root = T->nil; int n = 1; while (n != 0) { scanf("%d", &n); if (n == 0) { break; } else { rbInsert(T, n); } } rbPrint(T, T->root); printf("\n"); return 0; }