Esempio n. 1
0
void DeleteBinaryTree(struct BinaryNode *node)
{
    if(!node) return;
    
    DeleteBinaryTree(node->smaller);
    DeleteBinaryTree(node->greater);
    free(node);
}
void DeleteBinaryTree(struct BinaryTreeNode *root) {
    if(root == NULL) return;

    DeleteBinaryTree(root->left);
    DeleteBinaryTree(root->right);
    printf("delete:%d\n", root->data);
    free(root);
}
Esempio n. 3
0
void main()
{
    int values[16] = {8, 1, 3, 5, 7, 9, 10, 12, 14, 11, 13, 15, 0, 2, 4, 6};
    int loop;
    
    for(loop = 0; loop < 16; loop++)
    {
        Insert(values[loop], root);
    }
    
    LinearSearch_NonRecursive(9, values, 16);
    LinearSearch_Recursive(9, values, 0, 16);
    
    BinarySearch_Recursive(9, root, 0);
    BinarySearch_NonRecursive(9, root);
    
    
    
    LinearSearch_NonRecursive(16, values, 16);
    LinearSearch_Recursive(17, values, 0, 16);
    
    BinarySearch_Recursive(18, root, 0);
    BinarySearch_NonRecursive(19, root);
    
    DeleteBinaryTree(root);
    
}
int main() {
    struct BinaryTreeNode *root = (struct BinaryTreeNode *)malloc(sizeof(struct BinaryTreeNode));
    struct BinaryTreeNode *second = (struct BinaryTreeNode *)malloc(sizeof(struct BinaryTreeNode));
    struct BinaryTreeNode *third = (struct BinaryTreeNode *)malloc(sizeof(struct BinaryTreeNode));
    struct BinaryTreeNode *fourth = (struct BinaryTreeNode *)malloc(sizeof(struct BinaryTreeNode));
    struct BinaryTreeNode *fifth = (struct BinaryTreeNode *)malloc(sizeof(struct BinaryTreeNode));
    struct BinaryTreeNode *sixth = (struct BinaryTreeNode *)malloc(sizeof(struct BinaryTreeNode));
    struct BinaryTreeNode *seventh = (struct BinaryTreeNode *)malloc(sizeof(struct BinaryTreeNode));
    root->data = 1;
    root->left = second;
    root->right = third;
    second->data = 2;
    second->left = fourth;
    second->right = fifth;
    third->data = 3;
    third->left = sixth;
    third->right = seventh;
    fourth->data = 4;
    fourth->left = fourth->right = NULL;
    fifth->data = 5;
    fifth->left = fifth->right = NULL;
    sixth->data = 6;
    sixth->left = sixth->right = NULL;
    seventh->data = 7;
    seventh->left = seventh->right = NULL;
    
    DeleteBinaryTree(root);
    return 1;
}