关于链栈不清楚的问题
学习了链栈,可是下面代码总是编译不过,大家能帮忙看看哪错了吗#include <stdio.h>
#include <malloc.h>
typedef int datatype;
typedef struct snode
{
datatype data;
struct snode *next;
}StackNode,*LinkStack;
LinkStack top;
LinkStack InitStack()
{
LinkStack s;
s = (LinkStack)malloc(sizeof(LinkStack));
top = NULL;
return s;
}
int EmptyStack(LinkStack p)
{
if(top==NULL)
return 1;
else
return 0;
}
void OutputStack(LinkStack p)
{
LinkStack q=NULL;
q=top;
while(q!=NULL)
{
printf("%3d",q->data);
q=q->next;
}
printf("\n");
}
LinkStack PushStack(LinkStack p,datatype x)
{
LinkStack q;
q=(LinkStack )malloc(sizeof(LinkStack));
q->data = x;
q->next = top;
top = q;
return top;
}
LinkStack PopStack(LinkStack p,datatype *x)
{
LinkStack q;
if(top==NULL)
return NULL;
else
{
*x = top->data;
q=top;
top=top->next;
free(q);
return top;
}
}
main()
{
LinkStack p=NULL;
int x;
InitStack(p);
OutputStack(p);
printf("请输入你想要入栈的元素");
while(1)
{
int x;
scanf("%d",&x);
if(x==-1) break;
PushStack(p,x);
}
OutputStack(p);
while (!EmptyStack(p))
{
PopStack(p,&x);
printf("%d ",x);
}
}
页:
[1]