唯一确定一棵二叉树的实现
#define n 5#include "malloc.h"
typedef struct btree{
int data;
struct btree *left,*right;}btree;
bintree(int i,int j,int u,int v)
{ int k, l;
btree * head, * s;
int pre[n],ind[n],m;
for(m=0;m<5;m++)
scanf("%d",&pre[m]);
for(m=0;m<5;m++)
scanf("%d",&ind[m]);
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(i+l,l,u,k-l);
head ->left=s;
}
if (k==v) head->right=NULL;
else
{ s=bintree(l+1,j,k+l,v);
head->right=s;
}
}
return (head );
}
main()
{ btree *f;
bintree(0,4,0,4);
if(f!=NULL) printf("yes\n");
else printf("no\n");
}
警告 hexquan.c 23: 不可移动的指针(地址常数)赋值在 bintree 函数中
警告 hexquan.c 28: 不可移动的指针(地址常数)赋值在 bintree 函数中
警告 hexquan.c 32: 不可移动的指针(地址常数)转换在 bintree 函数中
警告 hexquan.c 37: 可能在'f'定义以前使用了它在 main 函数中
哪位高手能不能帮忙修改一下啊,谢谢!!!!!!!!!!!!!!!!!!!!!!!!!