| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 406 人关注过本帖
标题:说明语法错误
只看楼主 加入收藏
z520911
Rank: 2
等 级:论坛游民
帖 子:16
专家分:24
注 册:2011-7-2
结帖率:100%
收藏
已结贴  问题点数:10 回复次数:5 
说明语法错误
这是创建二叉树的实现函数
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 i)有问题
我用的是win  tc ,是不是win tc不支持void BuildBiTree(BSTree &T, char *s, int i)啊
只要把变量的“&”去掉就没问题,但去掉了就结果错误啊
ps:这不是主函数
搜索更多相关主题的帖子: middle 二叉树 
2011-07-02 13:23
h_mastuade
Rank: 2
等 级:论坛游民
帖 子:21
专家分:86
注 册:2011-6-28
收藏
得分:0 
T->lchild=NULL;
T->rchild=NULL;//你把两颗子树都置空  后面又创建左子树和右子树  肯定会有问题啊

2011-07-02 13:41
fragileeye
Rank: 5Rank: 5
等 级:职业侠客
威 望:2
帖 子:107
专家分:387
注 册:2011-5-21
收藏
得分:7 
Win TC应该不支持 “引用”。支持c++的编译器没问题。
2011-07-02 13:42
bccn_2012
Rank: 6Rank: 6
等 级:侠之大者
帖 子:158
专家分:447
注 册:2011-5-14
收藏
得分:0 
BuildBiTree(&(T->lchild),s,left);
这个函数的第一个参数是 指针, 但是明显你这个不符合。
2011-07-02 17:54
h_mastuade
Rank: 2
等 级:论坛游民
帖 子:21
专家分:86
注 册:2011-6-28
收藏
得分:3 
回复 4楼 bccn_2012
那是引用传值  不是指针...
2011-07-02 19:14
z520911
Rank: 2
等 级:论坛游民
帖 子:16
专家分:24
注 册:2011-7-2
收藏
得分:0 
谢谢大家,我换了C++就可以了
2011-07-02 20:04
快速回复:说明语法错误
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.063971 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved