#include<stdio.h>
#include<stdlib.h>
#define MAX 10
typedef struct SqStack
{
int data[MAX];
int top;
}SqStack;
//初始化栈
void InitStack(SqStack *s)
{
s->top=-1;
}
//判断栈是否为空
int Stackempty(SqStack *s)
{
if(s->top==-1)
return 0;
else
return 1;
}
//进栈
int push(SqStack *s,int e)
{
if(s->top==MAX-1)
{
printf("栈满\n");
return 0;
}
s->data[++s->top]=e;
return 1;
}
//出栈
int pop(SqStack *s,int *e)
{
if(s->top==-1)
{
printf("栈空\n");
return 0;
}
*e=s->data[s->top--];
return 1;
}
//打印栈元素
void printStack(SqStack *s)
{
int topp = s->top;
while(s->top!=-1)
{
printf("栈元素:%d\n",s->data[s->top--]);
}
s->top = topp;
}
int main()
{
int a;
SqStack s;//SqStack s 等价于 struct SqStack
printf("初始栈中的数据:\n");
s={1,2,3,4,5}; //赋值数组
s.top = 4; //栈顶指针,及指出元素所在的位置,这边元素最后所在的位置就是4,就是数组的索引位置;
printStack(&s);
printf("\n数据进栈后的数据:\n");
push(&s,6); //进栈;将6加入栈中;
printStack(&s);
pop(&s,&a);//出栈;
printf("\n出栈元素是:%d\n",a);
printf("\n出栈后栈中的数据:\n");
printStack(&s);
return 0;
}
【数据结构】 -- 顺序栈的入栈弹栈操作
最新推荐文章于 2023-11-15 09:57:17 发布