回 帖 发 新 帖 刷新版面

主题:请高手进来看一下这道题有哪里错了??

题目:已知一棵二叉树的前序序列和中序序列分别
存于两个一维数组中,试编写算法建立该二叉树的二
叉链表。

算法:
void BuildBiTree(BiTree &bt, int ps, char *pre, 
                             int is, char *ino, int n)
/* 当前要建立的子树bt的元素总数为n,*/
/* 元素在前序序列pre的起始位置为ps,*/
/* 元素在中序序列ino的起始位置为is  */
{
 int i,llen,rlen;
 bt=(BiTree)malloc(sizeof(BiTNode));
 if(!bt) exit(OVERFLOW);
 bt->data=pre[ps];
 for(i=is;ino[i]!=pre[ps];i++)
 llen=i-is;
 rlen=n-i;
 if(llen) 
   BuildBiTree(bt->lchild,ps+1,pre,is,ino,llen);
 if(rlen)
   BuildBiTree(bt->rchild,ps+1+llen,pre,is+1+llen,ino,rlen);     
}

回复列表 (共1个回复)

沙发


rightlen=n-leftlen-1;

我来回复

您尚未登录,请登录后再回复。点此登录或注册