链式堆栈

作者在 2010-05-19 22:29:43 发布以下内容
#include<stdio.h>
#include<stdlib.h>
typedef struct stacklist
{
int data;
struct stacklist * list;
}slist;
slist* push(slist *top,int x)
{
slist *p;
p=(slist*) malloc(sizeof(slist));
if(p==NULL)
{
printf("Memory allocate failed\n");
exit(0);
}
p->data=x;
p->list=top;
top=p;
return(top);
}
int pop(slist *top)
{
slist *p;
int z;
p=top;
if(top==NULL)
{
printf("Stack empty\n");
exit(0);
}
else
{
z=p->data;
p=p->list;
free(p);
}
return (z);
}
int main(void)
{
slist *top,*p[100];
int i,z,n;
top=NULL;
printf("Input the stack size n\n");
scanf("%d",&n);
for(i=0;i<n;i++)
{
printf("Input z\n");
scanf("%d",&z);
p[i]=push(top,z);
}
printf("Now pop the stack\n");
for(i=n-1;i>=0;i--)
{
z=pop(p[i]);
printf("%3d",z);
}
printf("\n");
}
默认分类 | 阅读 776 次
文章评论,共1条
源本英明C
2010-06-12 16:58
1
好样的
游客请输入验证码
浏览52021次
文章分类