叉树遍历的迭代器类 二叉树的迭代器: Tree Iterator ADT5.3:二叉树的迭代器类。 template <class Type>class TreeIterator I public: TreeIterator( const Binary Tree< Type>&bt): T(BT), current( NULL)[ 1 virtual TreeIterator()I) virtual void First()=0 //第一个被访问的结点地址送 current virtual void operator++()=0;//下一个被访问的结点地址送 current int operator+() const{ return current!=NUL;}/当前结点为空吗,非空返回True const Type operator ()()const; //返回当前结点指针 curren t所指向的结点的数据值 protected const Binary Tree <Type >&t: const BinaryNode<Type〉* current;//指向当前结点的指针。 private: TreeIterator( const TreeIterator & const TreeIterator operator=( const TreeIterator & template< class Type〉 const Type TreeIterator <Type>:: operator()() const Exception( current ==NULL, "This node is NULL! " return current->GetData(二叉树遍历的迭代器类 • 二叉树的迭代器:Tree Iterator ADT 5.3: 二叉树的迭代器类。 template <class Type> class TreeIterator { public: TreeIterator ( const BinaryTree < Type > & BT ) : T( BT ), current( NULL) { } virtual ~TreeIterator ( ) { } virtual void First ( ) = 0; // 第一个被访问的结点地址送current virtual void operator ++ ( ) = 0; // 下一个被访问的结点地址送current int operator + ( )const{ return current != NULL;}//当前结点为空吗,非空返回 True const Type & operator ( ) ( ) const; // 返回当前结点指针 current 所指向的结点的数据值。 protected: const BinaryTree <Type > & T; const BinaryNode<Type > * current; // 指向当前结点的指针。 private: TreeIterator ( const TreeIterator & ) { } const TreeIterator & operator = ( const TreeIterator & ); }; template <class Type> const Type & TreeIterator <Type> :: operator ( ) ( ) const { Exception( current == NULL, “This node is NULL!” ); return current->GetData( ); }