Esempio n. 1
0
File: rbt.c Progetto: jailuthra/misc
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);
    }
}
Esempio n. 2
0
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;
}
Esempio n. 3
0
File: rbt.c Progetto: jailuthra/misc
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;
}