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

    >> 研友的交流园地,讨论关于计算机考研的方方面面。
    [返回] 中文XML论坛 - 专业的XML技术讨论区计算机理论与工程『 计算机考研交流 』 → ds算法讨论 查看新帖用户列表

      发表一个新主题  发表一个新投票  回复主题  (订阅本版) 您是本帖的第 13559 个阅读者浏览上一篇主题  刷新本主题   树形显示贴子 浏览下一篇主题
     * 贴子主题: ds算法讨论 举报  打印  推荐  IE收藏夹 
       本主题类别:     
     Supremgoooo 帅哥哟,离线,有人找我吗?
      
      
      等级:大四下学期(考上研究生啦!)
      文章:201
      积分:1872
      门派:XML.ORG.CN
      注册:2006/4/9

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给Supremgoooo发送一个短消息 把Supremgoooo加入好友 查看Supremgoooo的个人资料 搜索Supremgoooo在『 计算机考研交流 』 的所有贴子 引用回复这个贴子 回复这个贴子 查看Supremgoooo的博客楼主
    发贴心情 ds算法讨论

    (1)穿线数:前序,中序,后序及其分别特有的性质

    (2)loser tree的其它建树(实现)方法

    (3)bbst(最佳bst)的建树方法

    imho:大题。。。。。


       收藏   分享  
    顶(0)
      




    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2006/8/27 21:10:00
     
     Supremgoooo 帅哥哟,离线,有人找我吗?
      
      
      等级:大四下学期(考上研究生啦!)
      文章:201
      积分:1872
      门派:XML.ORG.CN
      注册:2006/4/9

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给Supremgoooo发送一个短消息 把Supremgoooo加入好友 查看Supremgoooo的个人资料 搜索Supremgoooo在『 计算机考研交流 』 的所有贴子 引用回复这个贴子 回复这个贴子 查看Supremgoooo的博客2
    发贴心情 
    我利用mxf3306的二叉树后序周游框架,写了个穿线树建树的一般算法:

    void Thread(ThreadNode *root)
    {
        ThreadNode *pre=NULL;
        StackNode *e=new StackNode;
        e.pointer=root;
        using std::stack;
        stack<StackNode> s;
        while(!s.empty()||e.pointer)
        {
             if(e.pointer)
             {
                   ThreadVisit(e.pointer,pre);   //pre
                   e.tag=left;
                   s.push(e);
                   e.pointer=e.pointer->lc;
              }
             else
             {
                   e=s.top;   s.pop();
                   if(e.tag==left)
                   {
                          ThreadVisit(e.pointer,pre);   //In
                          e.tag=right;
                          s.push(e);
                          e.pointer=e.pointer->rc;
                   }
                   else
                   {
                           ThreadVisit(e.pointer,pre);   //Post
                           e.pointer=NULL;
                   }
             }
         }
    }

    void ThreadVisit(ThreadNode *e.pointer,ThreadNode *pre)
    {
         visit(e.pointer->value());
         if(pre!=NULL&&pre->rc==NULL)
         {
               pre->rt=1;
               pre->rc=e.pointer;
         }
         if(pre!=NULL&&e.pointer->lc==NULL)
         {
               e.pointer->lt=1;
               e.pointer->lc=pre;
         }
         pre=e.pointer;
    }

    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2006/8/28 13:07:00
     
     Supremgoooo 帅哥哟,离线,有人找我吗?
      
      
      等级:大四下学期(考上研究生啦!)
      文章:201
      积分:1872
      门派:XML.ORG.CN
      注册:2006/4/9

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给Supremgoooo发送一个短消息 把Supremgoooo加入好友 查看Supremgoooo的个人资料 搜索Supremgoooo在『 计算机考研交流 』 的所有贴子 引用回复这个贴子 回复这个贴子 查看Supremgoooo的博客3
    发贴心情 
    问题:可否找到穿线树不用递归,不用stack的统一遍历方法??
    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2006/8/28 13:14:00
     
     Supremgoooo 帅哥哟,离线,有人找我吗?
      
      
      等级:大四下学期(考上研究生啦!)
      文章:201
      积分:1872
      门派:XML.ORG.CN
      注册:2006/4/9

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给Supremgoooo发送一个短消息 把Supremgoooo加入好友 查看Supremgoooo的个人资料 搜索Supremgoooo在『 计算机考研交流 』 的所有贴子 引用回复这个贴子 回复这个贴子 查看Supremgoooo的博客4
    发贴心情 
    呵呵,想了一下,是不行的。因为后序穿线不能找某节点的后序后继。

    我总结的穿线树性质:
    (1)中序:可找中序前驱,中序后继,前序后继,后序前驱;
    (2)后序:可找后序前驱;
    (3)前序:可找前序后继;
    欢迎大家补充!

    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2006/8/29 20:50:00
     
     Supremgoooo 帅哥哟,离线,有人找我吗?
      
      
      等级:大四下学期(考上研究生啦!)
      文章:201
      积分:1872
      门派:XML.ORG.CN
      注册:2006/4/9

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给Supremgoooo发送一个短消息 把Supremgoooo加入好友 查看Supremgoooo的个人资料 搜索Supremgoooo在『 计算机考研交流 』 的所有贴子 引用回复这个贴子 回复这个贴子 查看Supremgoooo的博客5
    发贴心情 
    对BBST,知道了r数组是可以把它建出来的,求建树的方法。
    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2006/9/9 22:27:00
     
     Supremgoooo 帅哥哟,离线,有人找我吗?
      
      
      等级:大四下学期(考上研究生啦!)
      文章:201
      积分:1872
      门派:XML.ORG.CN
      注册:2006/4/9

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给Supremgoooo发送一个短消息 把Supremgoooo加入好友 查看Supremgoooo的个人资料 搜索Supremgoooo在『 计算机考研交流 』 的所有贴子 引用回复这个贴子 回复这个贴子 查看Supremgoooo的博客6
    发贴心情 
    其实这是个很简单的问题,由BST的性质和r数组的定义,可以得到一个明显的结论:
    r数组中相邻的节点间是父子关系。

    所以算法是很简单的:
    Node* Build_OBST(int **r,int n)
    {
          for(int i=0;i+2<=n;i++)
          {
                if(r[i][i+2]==i+1)
                   SetParent(i+1,i+2);  //将i+1作为i+2的父亲
               else   SetParent(i+2,i+1);
          }
          Node *root=Address(r[0][n]); //r[0][n]是归并n个节点后的根
         return root;
    }

    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2006/9/10 19:45:00
     
     teng_t1986 帅哥哟,离线,有人找我吗?天秤座1986-10-22
      
      
      威望:1
      头衔:智能缔造者
      等级:计算机学士学位(版主)
      文章:368
      积分:2273
      门派:IEEE.ORG.CN
      注册:2006/4/8

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给teng_t1986发送一个短消息 把teng_t1986加入好友 查看teng_t1986的个人资料 搜索teng_t1986在『 计算机考研交流 』 的所有贴子 点击这里发送电邮给teng_t1986 访问teng_t1986的主页 引用回复这个贴子 回复这个贴子 查看teng_t1986的博客7
    发贴心情 
    最后一个,动态规划典型问题,怎么觉得你的算法有点不对啊?连起码的权值比较都没有??可以给个完整的吗?

    ----------------------------------------------
    书山奋战不觉难,
    一刻光阴莫等闲。
    长路遥遥飞浩志,
    前尘洗却作泥丸。
    粗茶薄被心灯暖,
    明月清窗几案寒。
    欲待桂枝香万里,
    海阔天空俱欢颜。

    My blog:http://hi.baidu.com/tengteng2007

    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2006/9/15 18:35:00
     
     Supremgoooo 帅哥哟,离线,有人找我吗?
      
      
      等级:大四下学期(考上研究生啦!)
      文章:201
      积分:1872
      门派:XML.ORG.CN
      注册:2006/4/9

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给Supremgoooo发送一个短消息 把Supremgoooo加入好友 查看Supremgoooo的个人资料 搜索Supremgoooo在『 计算机考研交流 』 的所有贴子 引用回复这个贴子 回复这个贴子 查看Supremgoooo的博客8
    发贴心情 
    恩,有反例的,我想的简化方法不对。期待某大侠给个完整算法!

    提示:从下到上,用等价类合并;从上到下,用回溯。

    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2006/9/18 22:11:00
     
     springy126 帅哥哟,离线,有人找我吗?
      
      
      等级:大一新生
      文章:4
      积分:81
      门派:XML.ORG.CN
      注册:2006/9/5

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给springy126发送一个短消息 把springy126加入好友 查看springy126的个人资料 搜索springy126在『 计算机考研交流 』 的所有贴子 引用回复这个贴子 回复这个贴子 查看springy126的博客9
    发贴心情 
    通用的方法都有些复杂,
    这样是不是更简单:
    while(!s.empty()||e.pointer)
        {
             if(e.pointer)
             {
                  e.pointer=e.pointer->lc;

                  s.push(e);
              }
             else
             {
                   e=s.top;

                   s.pop();
                   ThreadVisit(e.pointer,pre);
                   e.pointer=e.pointer->rc;
             }
         }

    其他和Supremgoooo 相同,请各位指教

    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2006/9/20 13:06:00
     
     teng_t1986 帅哥哟,离线,有人找我吗?天秤座1986-10-22
      
      
      威望:1
      头衔:智能缔造者
      等级:计算机学士学位(版主)
      文章:368
      积分:2273
      门派:IEEE.ORG.CN
      注册:2006/4/8

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给teng_t1986发送一个短消息 把teng_t1986加入好友 查看teng_t1986的个人资料 搜索teng_t1986在『 计算机考研交流 』 的所有贴子 点击这里发送电邮给teng_t1986 访问teng_t1986的主页 引用回复这个贴子 回复这个贴子 查看teng_t1986的博客10
    发贴心情 
    用动态规划的典型加速算法呀……最后应该是O(n^2)的时间代价……具体算法书上有,不过是O(n^3)……

    ----------------------------------------------
    书山奋战不觉难,
    一刻光阴莫等闲。
    长路遥遥飞浩志,
    前尘洗却作泥丸。
    粗茶薄被心灯暖,
    明月清窗几案寒。
    欲待桂枝香万里,
    海阔天空俱欢颜。

    My blog:http://hi.baidu.com/tengteng2007

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

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

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