#include<stdio.h>
#include<malloc.h>
typedef struct
{
int *base;
int *top;
int stacksize;
}sqstack;
int Make_stack(sqstack &s) //初始化空栈
{
s.base=(int *)malloc(100*sizeof(int));
if(!s.base)
{
return 0;
}
s.top=s.base;
s.stacksize=100;
return 1;
}
int Get_topstack(sqstack s,int &e) //得到栈第一个元素
{
if(s.top==s.base)
{
return 0;
}
e=*(s.top-1);
return 1;
}
int push_date(sqstack &s,int e) //添加元素
{
if(s.top-s.base>=s.stacksize)
{
s.base=(int *)realloc(s.base,200*sizeof(int));
s.top=s.base+100;
s.stacksize=s.stacksize+100;
}
*s.top=e;
s.top++;
return 1;
}
int pop_stack(sqstack &s,int &e) //出栈
{
if(s.top==s.base)
return 0;
e=*(s.top-1);
s.top--;
return 1;
}
int main()
{
sqstack s;
int i,a;
Make_stack(s);
printf("put 5 data:");
for(i=0;i<5;i++)
{
scanf("%d",&a);
push_date(s,a);
}
printf("\n");
for(i=0;i<5;i++)
{
pop_stack(s,a);
printf("%d ",a);
}
return 0;
}
数据结构 栈
最新推荐文章于 2021-09-26 11:49:51 发布