| | | | | |

Maintaining Parents

Non-parented code:

    if (pred_(tval,nptr->value_))
    // left subtree
    {
      nptr->lchild_ = RInsert(nptr->lchild_, tval);
    }
    else if (pred_(nptr->value_,tval))
    // right subtree
    {
      nptr->rchild_ = RInsert(nptr->rchild_, tval);
    }
    else
    ...

Parented Code:

    if (pred_(tval,nptr->value_))
    // left subtree
    {
      nptr->lchild_ = RInsert(nptr->lchild_, tval);
      nptr->lchild_->parent_ = nptr;
    }
    else if (pred_(nptr->value_,tval))
    // right subtree
    {
      nptr->rchild_ = RInsert(nptr->rchild_, tval);
      nptr->rchild_->parent_ = nptr;
    }
    else
    ...

| | Top of Page | 14. BST Iterators - 13 of 41