| | | | | |

Table::Retrieve

Search by key, return the data

    bool Retrieve(const KeyType& k, DataType& d) const
    {
      Node * n = root_;
      while(n != nullptr)
      {
        if (pred_(k,n->key_))       // k < n->key_  : go left
        {
          n = n->lchild_;
        }
        else if (pred_(n->key_,k))  // k > n->key_  : go right
        {
          n = n->rchild_;
        }
        else if (n->IsAlive())      // k found alive
        {
          d = n->data_;
          return 1;
        }
        else
          return 0;
      }
      return 0;
    }

| | Top of Page | 12. Binary Search Trees - 37 of 41