Example #1
0
int main(int argc, const char * argv[]) {
    AVLTree b= create_tree();
    Insert(&b, 20, "jordan");
    Insert(&b, 42, "james");
    Delete(&b, 20);
    Insert(&b, 32, "jack");
    Insert(&b, 50, (void*)9);
    Insert(&b, 6, (void*)12);
    Insert(&b, 7, (void*)'j');
    Insert(&b, 4, (void*)'x');
    Insert(&b, 1, (void*)'v');
    Insert(&b, 100, "abby");
    Insert(&b, 90, "gabby");
    Insert(&b, 80, "grace");
    Insert(&b, 70, "david");
    Insert(&b, 39, "Chris");
    printf("pre-order\n");
    PrintPreOrder(&b);
    printf("in-order\n");
    PrintInOrder(&b);
    printf("post-order\n");
    PrintPostOrder(&b);
    printf("Distance from root %d\n",DistanceFromRoot(&b, 70));
    printf("tree height %d\n",TreeHeight(&b));
    printf("item: %s\n",Find(&b, 42));
    Delete(&b, 42);
    printf("item: %s\n",Find(&b, 39));
    printf("tree height %d\n",TreeHeight(&b));
    return 0;
}
Example #2
0
int main(void)
{
    char* command = malloc(10);
    int item = 0;
    struct treeNode** root = malloc(sizeof(struct treeNode*));
    *root = NULL;

    for(;;)
    {
        printf("Command: ");
        scanf("%s", command);
        if(!strcmp(command, "insert"))
        {
            printf("Item: ");
            scanf("%d", &item);
            Insert(root, item);
        }
        else if(!strcmp(command, "print"))
        {
            int choice = 0;
            if(*root == NULL){printf("Cannot print an empty tree!\n");continue;}
            printf("Order (1-PreOrder; 2-InOrder; 3-PostOrder): ");
            scanf("%d", &choice);
            if(choice == 1)
            {
                if(PrintPreOrder(*root)){printf("Cannot print an empty tree!\n");}
            }
            else if(choice == 2)
            {
                if(PrintInOrder(*root)){printf("Cannot print an empty tree!\n");}
            }
            else if(choice == 3)
            {
                if(PrintPostOrder(*root)){printf("Cannot print an empty tree!\n");}
            }
            else
            {
                printf("Invalid Choice\n");
            }
        }
        else if(!strcmp(command, "find"))
        {
            printf("Item: ");
            scanf("%d", &item);

            struct treeNode* temp = FindItem(*root, item);

            if(temp == NULL)
            {
                printf("Item not found - not in tree\n");
            }
            else
            {
                printf("Item found - address of item is: [%p]\n", (void *)temp);
            }
        }
        else if(!strcmp(command, "delete"))
        {
            printf("Item: ");
            scanf("%d", &item);

            if(DeleteNode(root, item))
            {
                printf("Node not found - not deleted\n");
            }
            else
            {
                printf("Node deleted\n");
            }
        }
        else if(!strcmp(command, "quit"))
        {
            break;
        }
    }

    free(command);
    freeTree(*root);
    free(root);
}
Example #3
0
	if(temp->parent == NULL && temp->right == NULL && temp->left == NULL) {
		free(temp);
		*rootptr = NULL;
		return 0;
	}
Example #4
0
//
//   void PrintInReverseOrder(Deque D)
//   {
//       PtrToNode ptr = D->Rear;
//       while(ptr != (PtrToNode)D) {
//           printf("%d", ptr->Element);
//           if(ptr->Last) {
//               printf(" ");
//           }
//           ptr = ptr->Last;
//       }
//      printf("\n");
//
//   } 
//
void Print(Queue Q) {
    PrintInOrder(Q);
    //PrintInReverseOrder(D);
}