根据先序和中序序列来确定一棵二叉树的算法实现
#define n 5#include "malloc.h"
typedef struct btree{
char data;
struct btree *left,*right;}btree;
bintree(char pre[n],char ind[n],int i,int j,int u,int v)
{ int k, l;
btree * head, * s;
head=NULL;
if (j>=i)
{ head =(btree * )malloc(sizeof(btree ));
head->data = pre[i];
k = u;
while (ind[k]!=pre[i]) k++;
l=i+k-u;
if (k==u) head->left=NULL;
else
{ s=bintree(pre,ind,i+l,l,u,k-l);
head ->left=s;
}
if (k==v) head->right=NULL;
else
{ s=bintree(pre,ind,l+1,j,k+l,v);
head->right=s;
}
}
return (head);
}
main()
{ char pre[n],ind[n];
int m,a1,a2,b1,b2,f;
for(m=0;m<5;m++)
scanf("%c",&pre[m]);
for(m=0;m<5;m++)
scanf("%c",&ind[m]);
scanf("%d",&a1);
scanf("%d",&a2);
scanf("%d",&b1);
scanf("%d",&b2);
f=bintree(pre,ind,a1,a2,b1,b2);
while(f) printf("%c ",f);
}
警告 erchas~1.c 18: 不可移动的指针(地址常数)赋值在 bintree 函数中
警告 erchas~1.c 23: 不可移动的指针(地址常数)赋值在 bintree 函数中
警告 erchas~1.c 27: 不可移动的指针(地址常数)转换在 bintree 函数中
这是怎么回事啊????????????????????????????????????????/