#include<stdio.h>
#include<stdlib.h>
#define MAXSIZE 100
typedef struct
{
int *base;
int *top;
int stacksize;
}SqStack;
//1.初始化
void InitStack(SqStack &S)
{
S.base=(int *)malloc(sizeof(int)*MAXSIZE);
S.top=S.base;
S.stacksize=MAXSIZE;
}
//2.入栈
void Push(SqStack &S,int e)
{
if(S.top-S.base==MAXSIZE) printf("栈满,入栈失败");
*S.top=e;S.top++;
//S.top++=e;
}
//3.出栈
void Pop(SqStack &S,int *e)
{
if(S.top==S.base) printf("空栈,出栈失败");
*e=*--S.top;
}
//4.取栈顶元素
int GetTop(SqStack S)
{
if(S.top!=S.base)
return *(S.top-1);
}
//补充5.遍历
void Print(SqStack S)
{
int *p;
for(p=S.top-1;p>=S.base;p--)
printf("%d ",*p);
}
int main()
{
int x;
SqStack S;
InitStack(S);
Push(S,2);
Push(S,3);
Push(S,4);
Print(S);
Pop(S,&x);
printf("\n%d出栈,剩下的元素是:",x);
Print(S);
printf("\n栈顶元素是:%d",GetTop(S));
return 0;
}
【数据结构C语言】顺序栈的表示和实现
最新推荐文章于 2022-01-12 18:16:38 发布