#include<stdio.h>
#include<stdlib.h>
#define maxsize 100//静态定义
typedef struct
{
int data[maxsize];
int top;
}SeqStack;
//栈的初始化
SeqStack *Init_SeqStack()
{
int n;
SeqStack *s;
s=malloc(sizeof(SeqStack));
s->top=-1;
scanf("%d\n",&n);//个人设的数据
for(int i=0;i<n;i++)
{
scanf("%d",&s->data[i]);
s->top++;
}
return s;
}
//判断是不是为空判
int Emtp_SeqStack(SeqStack *s)
{
if(s->top==-1)
{
printf("栈为空");
return 1;
}
else
{
return 0;//栈不为空
}
}
//入栈操作
int Push_SeqsTack(SeqStack *s)
{
//入栈操作要做判断
int n;
if(s->top==maxsize-1)
{
printf("栈满");
return 0;
}
else
{
scanf("%d",&n);
s->top++;
s->data[s->top]=n;
return 1;
}
}
//出栈操作
int Pop_SeqStack(SeqStack *s)
{
int n;
scanf("%d",&n);//从栈顶开始,前几项进行出栈,包括自己
if(Emtp_SeqStack(s))
{
return 0;
}
else
{
while (n>=0)
{
/* code */
printf("%d",s->data[s->top]);
s->top--;//指针需要移动
n--;
}
return 1;
}
}
int main()
{
SeqStack *p;
p=Init_SeqStack();//栈的初始化
Push_SeqsTack(p);//入栈操作,传过去的参数为p(收到的地址)
Pop_SeqStack(p);
return 0;
}
小编总结一下个人觉得顺序栈和顺序表类似.....不喜勿喷!!!