| | | | | |

Threaded Iterator Operations

Iterator class:

  public:
    Iterator & operator ++()
    {
      do Increment();
      while (node_ != nullptr && node_->IsDead());
      return *this;
    }

    Iterator & operator++(int)
    {
      Iterator i = *this;
      operator ++();
      return i;
    } 

Iterator class:

  public:
    Iterator & operator --()
    {
      do Decrement();
      while (node_ != nullptr && node_->IsDead());
      return *this;
    }

    Iterator & operator++(int)
    {
      Iterator i = *this;
      operator --();
      return i;
    } 

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