1. 程式人生 > 其它 >【資料結構梳理05】連結串列的一種迭代器

【資料結構梳理05】連結串列的一種迭代器

迭代器是一種用來一個一個地獲取容器類中所有元素的物件,在資料結構課程中我們經常需要遍歷或獲取資料結構中所儲存的資料,使用迭代器能大大方便我們的操作。

下面我們來介紹單向連結串列的一種前向迭代器。

注意:該迭代器需要作為自定義連結串列類的公共成員,即宣告為巢狀公共類。

class ChainIterator{
public:
  ChainIterator(ChainNode<T>* startNode = 0) { current = startNode; }
  T* operator*()const {return current->data;}
  T& operator->()const {return &current->data;}
  ChainIterator operator++(){
    current=current->link;
    return *this;
  }
  ChainIterator operator++(int){
    ChainIterator old=*this;
    current=current->link;
    return *this;
  }
  bool operator != (const ChainIterator right) const { return current != right.current; }
  bool operator == (const ChainIterator right) const { return current == right.current; }
  ChainIterator begin() {return ChainIterator(first);}
  ChainIterator end() {return ChainIterator(0);}
  
private:
  ChainNode<T>* current; 
};