| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 896 人关注过本帖
标题:求二叉树的前序遍列!
只看楼主 加入收藏
雪色朝阳
Rank: 2
等 级:论坛游民
帖 子:36
专家分:43
注 册:2010-3-10
结帖率:100%
收藏
已结贴  问题点数:5 回复次数:8 
求二叉树的前序遍列!
已知某二叉树的后序遍历序列是DACBE,中序遍历序列是DEBAC,如何求他的前序遍列?请详细说明!谢谢!


[ 本帖最后由 雪色朝阳 于 2010-3-19 10:08 编辑 ]
搜索更多相关主题的帖子: 二叉树 
2010-03-18 17:46
qlc00
Rank: 7Rank: 7Rank: 7
等 级:黑侠
威 望:2
帖 子:157
专家分:540
注 册:2007-11-26
收藏
得分:0 
你的这道题就有问题,没有那样的二叉树!

Anything is possible!
2010-03-18 18:20
smltq
Rank: 6Rank: 6
等 级:侠之大者
威 望:8
帖 子:566
专家分:400
注 册:2008-1-21
收藏
得分:0 
ab绝对有问题

简单的生活
2010-03-19 08:49
玩出来的代码
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:河南新乡
等 级:贵宾
威 望:11
帖 子:742
专家分:2989
注 册:2009-10-12
收藏
得分:2 
在后序中找中序序列中的字符在后序中最右边的字符,,
中序DEBAC,后序DACBE,
第一个字符E,                                        先序  E
此时中序分为D,BAC两部分,再看左子树一个D,                 ED
右子树BAC找到B,                                           EDB
。。。得先序为EDBCA

离恨恰如春草,更行更远还生。
2010-03-19 13:57
雪色朝阳
Rank: 2
等 级:论坛游民
帖 子:36
专家分:43
注 册:2010-3-10
收藏
得分:0 
回复 4楼 玩出来的代码
还是不懂,可以说一下做这类题的方法吗?
2010-03-19 14:28
玩出来的代码
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:河南新乡
等 级:贵宾
威 望:11
帖 子:742
专家分:2989
注 册:2009-10-12
收藏
得分:1 
程序代码:
BiTree CreatBT(char *in,char *post,int n,int m)
{                                //in中序序列,post后序n中序的个数m长度
    char *p,*q,*maxp;
    int maxin,w,r;
    BiTree T;
    r=-1;
    if(n<=0) return NULL;        //思想:在后序中找中序序列中的字符在后序中最右边的字符
    for(p=in;p<in+n;p++)
      for(q=post;q<post+m;q++)
      {
          if(*p==*q)
          {
              w=q-post;
              if(w>r)
              {
                  r=w;              //保存后序中的字符的位置
                  maxp=p;           /*保存找到的字符为递归右子树准备*/
                  maxin=p-in;       /*递归左子树准备*/
              }
          }
      }
    T=(BiTree)malloc(sizeof(BNode));
    T->data=post[r];
    T->lchild=CreatBT(in,post,maxin,m);
    T->rchild=CreatBT(maxp+1,post,n-maxin-1,m);
    return T;
}
找了一段程序,你看看,这种题……,也就只是根据中序后序构造先序,或是根据先序中序构造后序……

离恨恰如春草,更行更远还生。
2010-03-19 15:03
smltq
Rank: 6Rank: 6
等 级:侠之大者
威 望:8
帖 子:566
专家分:400
注 册:2008-1-21
收藏
得分:2 
已知某二叉树的后序遍历序列是DACBE,中序遍历序列是DEBAC,如何求他的前序遍列?请详细说明!谢谢!
已知二叉树的后序和中序,可以确定一课树,这课树为:
         E
     D        B
           C     
        A
所以,它的前序为:EDBCA


[ 本帖最后由 smltq 于 2010-3-19 15:17 编辑 ]

简单的生活
2010-03-19 15:14
chsteven
Rank: 2
等 级:论坛游民
帖 子:4
专家分:10
注 册:2010-3-19
收藏
得分:0 
以下是引用smltq在2010-3-19 15:14:13的发言:

已知某二叉树的后序遍历序列是DACBE,中序遍历序列是DEBAC,如何求他的前序遍列?请详细说明!谢谢!已知二叉树的后序和中序,可以确定一课树,这课树为:
         E
     D        B
           C     
        A
 ...
你上面这个树的中序是DEBAC吗?
2010-03-19 15:38
smltq
Rank: 6Rank: 6
等 级:侠之大者
威 望:8
帖 子:566
专家分:400
注 册:2008-1-21
收藏
得分:0 
        E
    D      B
             C
           A

sorry,前面偶把树画错了……

简单的生活
2010-03-19 16:55
快速回复:求二叉树的前序遍列!
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.012813 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved