#include<stdio.h>
#define MAXSIZE 100
typedef struct{
int *base;
int *top;
int stacksize;
}SqStack;
//初始化
bool initStack(SqStack &S){
S.base=new int[MAXSIZE]; //为顺序栈动态分配一个最大容量为MAXSIZE的数组
if(!S.base)
return false;
S.top=S.base; //设置为空栈
S.stacksize=MAXSIZE;
return true;
}
//入栈
bool Push(SqStack &S,int e){
if(S.top-S.base==S.stacksize) //判断是否栈满
return false;
*S.top++=e;
printf("进栈元素:%d:\n",e);
}
//出栈
bool Pop(SqStack &S,int &e){
if(S.top==S.base) //判断是否为栈空
return false;
e=*--S.top;
printf("出栈元素%d:\n",e);
}
//取栈顶元素
bool GetTop(SqStack S,int &e){
if(S.top==S.base)
return false;
e=*--S.top;
printf("栈顶元素%d:\n",e);
}
int main(){
SqStack s;
int e;
initStack(s);
Push(s,3);
Push(s,6);
Push(s,9);
Push(s,12);
Pop(s,e);
Pop(s,e);
GetTop(s,e);
return 0;
}
指针实现入栈、出栈、取栈顶元素
最新推荐文章于 2023-03-25 13:37:07 发布