链栈的简单操作 求解 为什么运行不出结果
#include <stdio.h>#include <stdlib.h>
typedef int StackElemType;
typedef struct node
{
StackElemType data;
struct node *next;
}LinkStackNode;
typedef LinkStackNode *LinkStack;
void InitLinkStack(LinkStack top);
void Push(LinkStack top,StackElemType x);
int Pop(LinkStack top);
int main()
{
LinkStack top;
InitLinkStack(top);
int i;
for(i=0;i<10;i++)
Push(top,i*10);
for(i=0;i<10;i++)
printf("%d",Pop(top));
return 0;
}
void InitLinkStack(LinkStack top)
{
top=(LinkStack)malloc(sizeof(LinkStack));
top->next=NULL;
}
void Push(LinkStack top,StackElemType x)
{
LinkStackNode *p;
p=(LinkStackNode*)malloc(sizeof(LinkStackNode));
p->data=x;
p->next=top->next;
top->next=p;
}
int Pop(LinkStack top)
{
if(top->next=NULL)
{
printf("表为空\n");
return 0;
}
int a;
LinkStackNode *temp;
temp=top->next;
top->next=temp->next;
a=temp->data;
free(temp);
return a;
}