封装一个二叉搜索树——迭代器遇到一个有关问题求教

封装一个二叉搜索树——迭代器遇到一个问题求教用模板类封装一个二叉搜索树,要做一个类似迭代器的东西,做到

封装一个二叉搜索树——迭代器遇到一个问题求教
用模板类封装一个二叉搜索树,要做一个类似迭代器的东西,做到前置的自加(self operator ++ ())的时候,中续遍历用递归写貌似不行。用栈模拟的话,好像没办法确定当我回到某个节点时,我是去遍历他的右子树还是去找他的爷爷节点。求教! Iterator 模板类
[解决办法]
中序遍历,非递归,要求双向链接:


第一个:
current = root;
while( current->left != NULL )
  current = current->left;

增量:
if( current->right != NULL )
{
   current = current->right;
   while( current->left != NULL )
      current = current->left;
}
else
{
    prev = current;
    current = current->parent;
    while( current != NULL and current->right == prev )
        current = current->parent;
}