CodeGuru Home VC++ / MFC / C++ .NET / C# Visual Basic VB Forums Developer.com
Results 1 to 2 of 2
  1. #1
    Join Date
    Jan 2013
    Posts
    1

    about delete in BST

    Hi:
    I feel confused about the delete in binary search tree.
    The following is the code:
    Code:
    void delete(struct bst_node** node) {
        struct bst_node* old_node = *node;
        if ((*node)->left == NULL) {
            *node = (*node)->right;
            free_node(old_node);
        } else if ((*node)->right == NULL) {
            *node = (*node)->left;
            free_node(old_node);
        } else {
            delete node with two children
        }
    }
    This problem is from the current node and its parents. In the above codes, obviously,
    I cannot image how the parent node connect to the current node's right child, if (*node)->left == NULL; In theoretically, to find out the parent node, I should write following:
    Code:
    struct bst_node* p;
    if(current_node!=null)
    {
    p=current_node; current_node=current->right;
    }
    And then node p is the parent code of current. However, this algorithm not show in the function void delete(struct bst_node** node); why, and how to explain that.
    Thanks a lot.

  2. #2
    Join Date
    Feb 2011
    Location
    United States
    Posts
    1,016

    Re: about delete in BST

    This question is better suited to the C++ subforum.

    [ Thread moved, retaining a redirect in Algos & Data Structures ]
    Best Regards,

    BioPhysEngr
    http://blog.biophysengr.net
    --
    All advice is offered in good faith only. You are ultimately responsible for effects of your programs and the integrity of the machines they run on.

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  





Click Here to Expand Forum to Full Width

Featured