标题:已知二叉树的中序遍历序列和后序遍历序列,还原二叉树,我的程序总是不对, ...
只看楼主
ksws0191053
Rank: 2
等 级:论坛游民
帖 子:30
专家分:32
注 册:2010-12-3
结帖率:42.86%
已结贴  问题点数:20 回复次数:2 
已知二叉树的中序遍历序列和后序遍历序列,还原二叉树,我的程序总是不对,求修改
上网找了很多资料,自认为理解了算法,可是总是输出一堆乱码,求修改啊,感激不尽,我快想疯了
程序代码:
#include "stdio.h"
#include "malloc.h"
#include "string.h"
#define TRUE 1
#define FALSE 0
#define OK  1
#define ERROR  0
#define INFEASIBLE -1
#define OVERFLOW -2
typedef int  Status;

typedef char  ElemType;
typedef struct BiTNode{
  ElemType data;
  struct BiTNode *lchild,*rchild;//左右孩子指针
} BiTNode,*BiTree;

BiTree PreCreate(char *post,char *in,int len)
{
    int leftlen,rightlen;
    char *p;
    BiTree root;
    if(len<=0)
        return NULL;
    root=(BiTNode *)malloc(sizeof(BiTNode));
    root->data=post[len-1];
//    printf("%c",root->data);
    for(p=in;p-in<len;p++)
    {
        if(*p==root->data)
        break;
    }
    leftlen=p-in;
    rightlen=len-leftlen-1;
    root->lchild=PreCreate(post+1,in,leftlen);
    root->rchild=PreCreate(post+leftlen+1,p+1,rightlen);
    return root;
}

void print(BiTree T)  // 打印后序遍历序列
{
    if(T==NULL) return;
    print(T->lchild);
    print(T->rchild);
    printf("%c",T->data);

}
int main()
{

  int len=6;
  char post[6]={'d','e','b','f','c','a'},in[6]={'d','b','e','a','f','c'};    // 存储后序和中序遍历的序列
  BiTree T;
  T=(BiTNode *)malloc(sizeof(BiTNode));
  T=PreCreate(post,in,len);
    print(T);
    printf("\n");


  return 0;

}


[ 本帖最后由 ksws0191053 于 2011-10-23 01:10 编辑 ]
搜索更多相关主题的帖子: 资料 color 二叉树 上网 
2011-10-23 01:08
gball
Rank: 3Rank: 3
等 级:禁止发言
帖 子:56
专家分:192
注 册:2011-9-23
得分:10 
提示: 作者被禁止或删除 内容自动屏蔽

在网吧通宵泡论坛发贴子,挣齐所有大学学费,详情请点击:   http://www.vikkk.tk/
2011-10-23 16:12
tingshuodui
Rank: 2
等 级:论坛游民
帖 子:2
专家分:10
注 册:2011-10-19
得分:10 
LZ把递归中的这两句改下:
root->lchild=PreCreate(post,in,leftlen);
root->rchild=PreCreate(post+leftlen,p+1,rightlen);
2011-10-23 21:16



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-353197-1-1.html




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

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