• 大小: 2KB
    文件类型: .c
    金币: 1
    下载: 0 次
    发布日期: 2021-05-15
  • 语言: 其他
  • 标签: 数据结构  C语言  

资源简介

由中序和先序序列恢复二叉树 由中序和后序序列恢复二叉树

资源截图

代码片段和文件信息

#include
#include
#include
#define maxsize 20
char prelist[maxsize];
char inlist[maxsize];
char postlist[maxsize];
typedef struct node
{
char data;
struct node *lchild*rchild;
} bitree;

/*由中序和先序序列恢复二叉树*/

bitree *preintotree(char *prechar *inint iint jint kint l)
{
int m;
bitree *p;
p=(bitree*)malloc(sizeof(bitree));
p->data=*(pre+i);
m=k;
while(*(in+m)!=*(pre+i))
{
   m++;
}
if (m==k)
{
   p->lchild=NULL;
}
else
{
   p->lchild=preintotree(preini+1i+m-kkm-1);
}
if (m==l)
{
   p->rchild=NULL;
}
else
{
   p->rchild=preintotree(preini+m-k+1jm+1l);
}
return(p);
}

/*由中序和后序序列恢复二叉树*/

bitree *inposttotree(char *inchar *postint iint jint kint l)
{
int m;
bitree *p;
p=(bitree*)malloc(sizeof(bitree));
p->data=*(post+l);
m=i;
while(*(in+m)!=*(post+l))
{
   m++;
}
if (m==i)
{
   p->lchild=NULL;
}
else
{
   p->lchild=inposttotree(inpostim-1kk+m-i-1);
}
if (m==j)
{
   p->rchild=NULL;
}
else
{
   p->rchild=inposttotree(inpostm+1jk+m-il-1);
}
return(p);

评论

共有 条评论