#ifndef _BSPTREE_TREEITERATORINORDER_HPP_ #define _BSPTREE_TREEITERATORINORDER_HPP_ #ifndef _BSPTREE_BINARYTREE_HPP_ #include #endif #ifndef _BSPTREE_INORDERSTACK_HPP_ #include #endif template class TreeIteratorInorder { public: TreeIteratorInorder(void); TreeIteratorInorder(BinaryTree &binaryTree); virtual ~TreeIteratorInorder(); T *operator++(void); T *operator++(int postFixDummy); TreeIteratorInorder &operator=(BinaryTree &binaryTree); void reset(void); private: void createInorderStack(BinaryTree &binaryTree); InorderStack mInorderStack; }; template inline TreeIteratorInorder::TreeIteratorInorder(void) { } template inline TreeIteratorInorder::TreeIteratorInorder(BinaryTree &binaryTree) { createInorderStack(binaryTree); } template inline TreeIteratorInorder::~TreeIteratorInorder() { } template inline T *TreeIteratorInorder::operator++(int /*postFixDummy*/) { return operator++(); } template inline void TreeIteratorInorder::reset(void) { mInorderStack.clear(); } #if defined(_MSC_VER) #include #endif #endif