新书推介:《语义网技术体系》
作者:瞿裕忠,胡伟,程龚
   XML论坛     W3CHINA.ORG讨论区     >>计算机科学论坛<<     SOAChina论坛     Blog     开放翻译计划     新浪微博  
 
  • 首页
  • 登录
  • 注册
  • 软件下载
  • 资料下载
  • 核心成员
  • 帮助
  •   Add to Google

    >> 研友的交流园地,讨论关于计算机考研的方方面面。
    [返回] 计算机科学论坛计算机理论与工程『 计算机考研交流 』 → [讨论]后序非递归周游不用标志位. 查看新帖用户列表

      发表一个新主题  发表一个新投票  回复主题  (订阅本版) 您是本帖的第 6107 个阅读者浏览上一篇主题  刷新本主题   树形显示贴子 浏览下一篇主题
     * 贴子主题: [讨论]后序非递归周游不用标志位. 举报  打印  推荐  IE收藏夹 
       本主题类别:     
     DavidPotter 帅哥哟,离线,有人找我吗?
      
      
      等级:大三暑假(ITELS考了6.5分!)
      文章:150
      积分:852
      门派:Lilybbs.net
      注册:2006/3/7

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给DavidPotter发送一个短消息 把DavidPotter加入好友 查看DavidPotter的个人资料 搜索DavidPotter在『 计算机考研交流 』 的所有贴子 点击这里发送电邮给DavidPotter 引用回复这个贴子 回复这个贴子 查看DavidPotter的博客楼主
    发贴心情 [讨论]后序非递归周游不用标志位.

    上次看到过这样的思想.
    试着写一下:


    template <class T>
    void PostOrder(BinaryTreeNode<T>* root)
    {
      BinaryTreeNode<T>* pointer=root;
      BinaryTreeNode<T>* temp=NULL;// indicate if the right sub tree visited
      
      Stack<BinaryTreeNode> stack;
      
      while(!stack.empty || pointer)
      {
        while(pointer)
        {
          stack.push(pointer);
          pointer=pointer->left;
        }
        
        if(!stack.empty)
        {
          pointer=stack.top();
          if(pointer->rightChild()==NULL || pointer->rightChild()==temp)// right sub tree is empty || visited.
          {
            Visit(pointer);
            stack.pop();// only pop here.
            temp=pointer;
            pointer=NULL; //
          }
          else//visit the right sub tree.
          {
           pointer=pointer->rightChild();
          }
        }// end if
      }//end while
      
    }


       收藏   分享  
    顶(0)
      




    ----------------------------------------------
    Don‘t try so hard, the best things come when you least expect them to.

    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2006/10/17 11:31:00
     
     Logician 帅哥哟,离线,有人找我吗?天蝎座1984-10-28
      
      
      威望:9
      头衔:逻辑爱好者
      等级:研三(收到IBM CRL的Offer了)(版主)
      文章:1219
      积分:10357
      门派:IEEE.ORG.CN
      注册:2005/3/12

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给Logician发送一个短消息 把Logician加入好友 查看Logician的个人资料 搜索Logician在『 计算机考研交流 』 的所有贴子 点击这里发送电邮给Logician  访问Logician的主页 引用回复这个贴子 回复这个贴子 查看Logician的博客2
    发贴心情 
    这个似乎就是用栈来模拟递归?
    这个scheme可以用于把任何递归程序转化为非递归,其工作方式和递归程序其实是一样的。

    ----------------------------------------------
    Three passions, simple but overwhelmingly strong, 
    have governed my life: the longing for love, the
    search for knowledge, and unbearable pity for the
    suffering of mankind.
                                - Bertrand Russell

    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2006/10/17 21:40:00
     
     DavidPotter 帅哥哟,离线,有人找我吗?
      
      
      等级:大三暑假(ITELS考了6.5分!)
      文章:150
      积分:852
      门派:Lilybbs.net
      注册:2006/3/7

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给DavidPotter发送一个短消息 把DavidPotter加入好友 查看DavidPotter的个人资料 搜索DavidPotter在『 计算机考研交流 』 的所有贴子 点击这里发送电邮给DavidPotter 引用回复这个贴子 回复这个贴子 查看DavidPotter的博客3
    发贴心情 
    用栈来模拟递归好像特别复杂,我看过一些例子,冒是特别烦的。
    而且我感觉上面那种方式比书上的那个后序周游要简单一些。

    ----------------------------------------------
    Don‘t try so hard, the best things come when you least expect them to.

    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2006/10/18 9:45:00
     
     GoogleAdSense
      
      
      等级:大一新生
      文章:1
      积分:50
      门派:无门无派
      院校:未填写
      注册:2007-01-01
    给Google AdSense发送一个短消息 把Google AdSense加入好友 查看Google AdSense的个人资料 搜索Google AdSense在『 计算机考研交流 』 的所有贴子 点击这里发送电邮给Google AdSense 访问Google AdSense的主页 引用回复这个贴子 回复这个贴子 查看Google AdSense的博客广告
    2024/4/27 15:04:45

    本主题贴数3,分页: [1]

    管理选项修改tag | 锁定 | 解锁 | 提升 | 删除 | 移动 | 固顶 | 总固顶 | 奖励 | 惩罚 | 发布公告
    W3C Contributing Supporter! W 3 C h i n a ( since 2003 ) 旗 下 站 点
    苏ICP备05006046号《全国人大常委会关于维护互联网安全的决定》《计算机信息网络国际联网安全保护管理办法》
    66.406ms