编译出现的错误信息 ( 积分: 20 )

  • 主题发起人 主题发起人 hyzb
  • 开始时间 开始时间
H

hyzb

Unregistered / Unconfirmed
GUEST, unregistred user!
我在vc++6.0中编译如下代码时出现错误:
#include <iostream.h>
#include <conio.h>
#include <stdio.h>
#define MAX 30
typedef struct TreeNode
{
char a;
TreeNode *left;
TreeNode *right;
}TreeNode,*BinTree;
typedef struct
{
TreeNode* data[MAX];
int top;
}SeqStack;
void InitStack(SeqStack &S)
{
S.top=0;
}
int StackEmpty(SeqStack S)
{
if(S.top==0)
return 1;
else
return 0;
}
int StackFull(SeqStack S)
{
if(S.top==MAX) return 1;
else
return 0;
}
void Push(SeqStack &S,TreeNode *node)
{
if(!StackFull(S))
{
S.data[S.top]=node;
S.top++;
}
else
cout<<"Stack is full!/n";
}
void Pop(SeqStack &S,TreeNode* &e)
{
if(!StackEmpty(S))
{
S.top--;
e=S.data[S.top];
}
else
cout<<"Stack is empty!";
}
TreeNode* GetTop(SeqStack S)
{
if(!StackEmpty(S))
{
TreeNode *node;
node=S.data[S.top-1];
return node;
}
else
cout<<"Stack is empty!";
}
void CreateBinTree(BinTree &T)
{
char b;
cin>>b;
if(b=='0')T=NULL;
else
{
T=new TreeNode;
T->a=b;
CreateBinTree(T->left);
CreateBinTree(T->right);
}
}
void Preorder(BinTree T)
{
TreeNode *p;
SeqStack S;
InitStack(S);
Push(S,T);
while(!StackEmpty(S))
{
Pop(S,p);
while(p)
{
cout<<p->a<<" ";
Push(S,p->right);
p=p->left;
}
}
}
void info()
{
cout<<"/n请选择:/n";
cout<<"/nA----------二叉树的建立/n";
cout<<"/nB----------非递归先序遍历/n";
cout<<"/nX----------退出/n";
}
void main()
{
BinTree T;
char ch='/0';
bool flag=true;
while(flag)
{
info();
cin>>ch;
switch(ch)
{
case'a':
case'A':
cout<<"请按先序次序输入结点,空结点用"0"表示:/n";
CreateBinTree(T);
cout<<"二叉树建立成功!/n";
break;
case'b':
case'B':
cout<<"先序遍历的结果为:/n";
Preorder(T);
break;
case'x':
case'X':
flag=false;
break;
default:
cout<<"输入无效,请重新输入!/n";
}
}
}
错误信息是:error C2143: syntax error : missing ';' before 'constant'
error C2143: syntax error : missing ';' before 'string'
这2个错误什么意思啊?应该怎么改?
 
我在vc++6.0中编译如下代码时出现错误:
#include <iostream.h>
#include <conio.h>
#include <stdio.h>
#define MAX 30
typedef struct TreeNode
{
char a;
TreeNode *left;
TreeNode *right;
}TreeNode,*BinTree;
typedef struct
{
TreeNode* data[MAX];
int top;
}SeqStack;
void InitStack(SeqStack &S)
{
S.top=0;
}
int StackEmpty(SeqStack S)
{
if(S.top==0)
return 1;
else
return 0;
}
int StackFull(SeqStack S)
{
if(S.top==MAX) return 1;
else
return 0;
}
void Push(SeqStack &S,TreeNode *node)
{
if(!StackFull(S))
{
S.data[S.top]=node;
S.top++;
}
else
cout<<"Stack is full!/n";
}
void Pop(SeqStack &S,TreeNode* &e)
{
if(!StackEmpty(S))
{
S.top--;
e=S.data[S.top];
}
else
cout<<"Stack is empty!";
}
TreeNode* GetTop(SeqStack S)
{
if(!StackEmpty(S))
{
TreeNode *node;
node=S.data[S.top-1];
return node;
}
else
cout<<"Stack is empty!";
}
void CreateBinTree(BinTree &T)
{
char b;
cin>>b;
if(b=='0')T=NULL;
else
{
T=new TreeNode;
T->a=b;
CreateBinTree(T->left);
CreateBinTree(T->right);
}
}
void Preorder(BinTree T)
{
TreeNode *p;
SeqStack S;
InitStack(S);
Push(S,T);
while(!StackEmpty(S))
{
Pop(S,p);
while(p)
{
cout<<p->a<<" ";
Push(S,p->right);
p=p->left;
}
}
}
void info()
{
cout<<"/n请选择:/n";
cout<<"/nA----------二叉树的建立/n";
cout<<"/nB----------非递归先序遍历/n";
cout<<"/nX----------退出/n";
}
void main()
{
BinTree T;
char ch='/0';
bool flag=true;
while(flag)
{
info();
cin>>ch;
switch(ch)
{
case'a':
case'A':
cout<<"请按先序次序输入结点,空结点用"0"表示:/n";
CreateBinTree(T);
cout<<"二叉树建立成功!/n";
break;
case'b':
case'B':
cout<<"先序遍历的结果为:/n";
Preorder(T);
break;
case'x':
case'X':
flag=false;
break;
default:
cout<<"输入无效,请重新输入!/n";
}
}
}
错误信息是:error C2143: syntax error : missing ';' before 'constant'
error C2143: syntax error : missing ';' before 'string'
这2个错误什么意思啊?应该怎么改?
 
我之前也遇到了相似的问题,而且比你多得多得错误,后来好了
具体怎样好的,不是很清楚,你试试下面的做法看看:
要么头文件方面的问题
要么重新新建一个工程(可试试别的工程),然后把你的文件添加进工程,或许行
要么你的程序中就真的是多了点东西你没发现
 
问题已解决
"0"改为/“0/“即可
 
接受答案了.
 
后退
顶部