新人,问个栈的小问题,答对送分

smartone1 2005-03-23 03:38:27
各位达人帮我看看这段代码有什么问题?
#include<stdio.h>
#include<stdlib.h>
void push(char x);
void pop();
void correct(enum Boolean{ }tag);
typedef struct Stack
{
char data;
struct Stack *next;
};
struct Stack *head,*p;
enum Boolean{FALSE,TRUE}tag;
void main()
{
head=(struct Stack*)malloc(sizeof(struct Stack));
head->data ='s';
head->next=NULL;

correct(tag);
if(tag)
printf("Right");
else
printf("Wrong");
}
void push(char x)
{
p=(struct Stack*)malloc(sizeof(struct Stack));
if(!p)
printf("There's no place.\n");
else
{
p->data=x;
p->next=head;
head=p;
}
}

void pop()
{
if(head->next==NULL)
printf("The stack is empty.\n");
else {

p=head;
head=head->next;
free(p);
}

}
void correct(enum Boolean{ }tag)
{
int i;
char y;

printf("Please enter a bds:");
for(i=0;y!='\n';i++)
{
scanf("%c",&y);

if((y==')'&&head->data=='(')||(y==']'&&head->data=='[')||(y=='}'&&head->data=='{'))

pop();
else if((y=='(')||(y=='{')||(y=='['))
push(y);

else

continue;
}
if(head->next==NULL)

tag=TRUE;
else
tag=FALSE;
}

我就感觉head=(struct Stack*)malloc(sizeof(struct Stack));
head->data ='s';
head->next=NULL;
有问题,但我不知道怎么改?谢谢各位了
...全文
66 点赞 收藏 5
写回复
5 条回复
smartone1 2005年03月23日
把void correct(enum Boolean{ }tag);
改成void correct(enum Boolean{FALSE,TRUE}tag);

回复 点赞
smartone1 2005年03月23日
0011411(蓝色灵影)
改成了head=(Stack*)malloc(sizeof(Stack));
也不行啊
C:\Program Files\Microsoft Visual Studio\VC98\SHIYAN.C(15) : error C2065: 'Stack' : undeclared identifier
C:\Program Files\Microsoft Visual Studio\VC98\SHIYAN.C(15) : error C2059: syntax error : ')'
回复 点赞
oyljerry 2005年03月23日
enum Boolean{FALSE,TRUE}tag; 枚举
回复 点赞
0011411 2005年03月23日
head=(Stack*)malloc(sizeof(Stack));
回复 点赞
smartone1 2005年03月23日
还有enum Boolean{FALSE,TRUE}tag;这个东西是什么?怎么用?我在网上没找到答案。
望高人指点!
回复 点赞
发动态
发帖子
VC/MFC
创建于2007-09-28

7889

社区成员

42.1w+

社区内容

VC/MFC相关问题讨论
社区公告
暂无公告