作业帮 > 综合 > 作业

说明语法错误这是创建二叉树的实现函数void BuildBiTree(BSTree &T,char *s,int i){

来源:学生作业帮 编辑:大师作文网作业帮 分类:综合作业 时间:2024/11/06 21:28:44
说明语法错误
这是创建二叉树的实现函数
void BuildBiTree(BSTree &T,char *s,int i)
{
char stack[20],base,top;
int left,middle,right;
base=top=0;
if(*s)
{
T=(BSTree)malloc(sizeof(BSTNode));
T->data=s[i];
T->lchild=NULL;
T->rchild=NULL;
if(s[i+1]!='\0' && s[i+1]!=',' && s[i+1]!=')')
{
left=i+2;
if(s[left]!='#')
BuildBiTree(T->lchild,s,left);
middle=i+3;
if(s[middle]=='(')
stack[top++]=s[middle++];
for(;top!=base && s[middle]!='\0';middle++)
{
if(s[middle]=='(')
stack[top++]=s[middle];
if(s[middle]==')')
top--;
}
right=++middle;
if(s[right]!='#')
BuildBiTree(T->rchild,s,right);
}
}
}
这里是void BuildBiTree(BSTree &T,char *s,int
我用的是win tc ,是不是win tc不支持void BuildBiTree(BSTree &T,char *s,int i)啊
只要把变量的“&”去掉就没问题,但去掉了就结果错误啊
ps:这不是主函数
说明语法错误这是创建二叉树的实现函数void BuildBiTree(BSTree &T,char *s,int i){
你的问题就下面四点:
1.首先应该注意,C语言中没有引用,C++中才有引用.
2.如果你要使用引用,就将文件保存成.cpp的C++源文件,并用C++编译器来编译.
3.如果你要使用C语言编译器,就必须使用C语言的语法,不能用引用,但可以使用指针,并且应该使用二级指针(BSTree **); 如果要使用一级指针,返回值就不能用void,必须用BSTree *类型.否则,程序会出现让你有种想把自己头发揪掉冲动的错误.
4.TC我没有用过,不清楚是否支持C++,很可能是只支持C程序的.你可以使用dev c++ 或者 VC++ 来编译C++程序.
我想我说的非常清楚了,如果还有问题,欢迎交流:)