蜡笔星子 发表于 2014-11-27 14:45:41

关于链栈不清楚的问题

学习了链栈,可是下面代码总是编译不过,大家能帮忙看看哪错了吗

#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]
查看完整版本: 关于链栈不清楚的问题