链栈初学,简单操作出现问题,求解答
#include<stdio.h>#include<stdlib.h>
typedef struct node
{
int data;
struct node *next;
}linkstack;
void initlink(linkstack *top)
{
top=(linkstack *)malloc(sizeof(node));
top->next=NULL;
}
void push(linkstack *top,int x,int y) //将x到y进栈
{
node *temp;
for(x;x<=y;x++)
{
temp=(linkstack *)malloc(sizeof(node));
temp->data=x;
temp->next=top->next;
top->next=temp;
}
}
void pop(linkstack *top )
{
node *temp;
temp=(linkstack *)malloc(sizeof(node));
temp=top->next;
top->next=temp->next;
printf("%d ",temp->data);
free(temp);
}
int main()
{
int n;
linkstack top;
scanf("%d",&n);
push(&top,1,n);
while(top.next!=NULL)//此处运行似乎未完成,光标闪动。
{
pop(&top);
}
return 0;
}