一个关于数据结构中栈的问题,我没发现有什么错误但是编译器提示有错求解释

include<stdio.h>
include<malloc.h>
include<stdlib.h>
typedef struct Node
{
int data;
struct Node * pNext;
}NODE,*PNODE;
typedef struct Stack
{
PNODE pTop;
PNODE pBottom;
}STACK,*PSTACK;
void init(PSTACK );
void push(PSTACK,int );
void traverse(PSTACK );
int main(void)
{
STACK S;
init(&s);
push(&s,1);
push(&s,2);
push(&s,3);
traverse(&s);
return 0;
}
void init(PSTACK ps)
{
ps->pTop=(PNODE)malloc(sizeof(NODE));
if(ps->pTop==NULL)
{
printf("动态内存分配失败!\n");
exit(-1);
}
else
{
ps->pBottom=ps->pTop;
ps->pBottom->pNext=NULL;
}
return;
}
void push stack(PSTACK ps,int val)
{
PNODE pNew =(PNODE)malloc(sizeof(NODE));
pNew->data=val;
pNew->pNext=ps->pTop;
ps->pTop=pNew;
return;
}
void traverse(PSTACK ps)
{
PNODE p=ps->pTop
while(ps->pBottom != p)
{
printf("%d",p->data);
p=p->pNext;
}
printf("\n");
return;
}
编译器说的错误是--------------------Configuration: stack - Win32 Debug--------------------
Compiling...
stack.cpp
D:\VC6.0\stack.cpp(1) : error C2143: syntax error : missing ';' before '<'
D:\VC6.0\stack.cpp(1) : error C2501: 'include' : missing storage-class or type specifiers
D:\VC6.0\stack.cpp(1) : error C2143: syntax error : missing ';' before '<'
由于字数限制全部贴不出来就解释这是个什么错误

第1个回答  2012-05-20
#include<stdio.h>
#include<malloc.h>
#include<stdlib.h>
typedef struct Node
{
int data;
struct Node * pNext;
}NODE,*PNODE;
typedef struct Stack
{
PNODE pTop;
PNODE pBottom;
}STACK,*PSTACK;
void init(PSTACK ps);
void push (PSTACK ps,int val);
void traverse(PSTACK ps);
int main(void)
{
PSTACK S;
init(S);
push(S,1);
push(S,2);
push(S,3);
traverse(S);
return 0;
system("PAUSE");
return 0;
}
void init(PSTACK ps)
{
ps->pTop=(PNODE)malloc(sizeof(NODE));
if(ps->pTop==NULL)
{
printf("动态内存分配失败!\n");
exit(-1);
}
else
{
ps->pBottom=ps->pTop;
ps->pBottom->pNext=NULL;
}
return 1;
}
void push (PSTACK ps,int val)
{
PNODE pNew =(PNODE)malloc(sizeof(NODE));
pNew->data=val;
pNew->pNext=ps->pTop;
ps->pTop=pNew;
return 1;
}
void traverse(PSTACK ps)
{
PNODE p=ps->pTop;
while(ps->pBottom != p)
{
printf("%d",p->data);
p=p->pNext;
}
printf("\n");
return 1;
}
我改得差不多了,,可是还有错,,,有些细节,,你要注意。。。算法,,具体功能没看
第2个回答  2012-05-18
你肯定有字符敲错了,耐心点找本回答被提问者采纳
相似回答