List Iterator Interface
public:
// terminology support
typedef T ValueType;
typedef ListIterator<T> Iterator;
// operators
bool operator == (const Iterator& i2) const;
bool operator != (const Iterator& i2) const;
Iterator& operator = (const Iterator& i);
T& operator * (); // Return reference to current Tval
const T& operator * () const; // const version
Iterator& operator ++ (); // prefix
Iterator operator ++ (int); // postfix
Iterator& operator -- (); // prefix
Iterator operator -- (int); // postfix
bool Valid () const; // Iterator is (pointing to) a valid element