首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

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

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

封装一个二叉搜索树——迭代器遇到一个问题求教
用模板类封装一个二叉搜索树,要做一个类似迭代器的东西,做到前置的自加(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;
}


  

热点排行