#inclue<stdio.>
#define MAXSIZE 100
typedef struct{
int data[MAXSIZE];
int top;
}SqStack;
//初始化栈
void initStack(SqStack &S){
S.top=-1;
}
//判断栈是否为空、返回1为空、返回0不为空
bool StackEmpty(SqStack S){
if(S.top==-1)
return true;
else
return false;
}
//入栈
bool Push(SqStack &S,ElemType x){
//判断是否栈满
if(S.top==MAXSIZE-1)
return false;
//将栈顶元素入栈,然后top记录当前栈内的元素
S.data[++S.top]=x;
return true;
}
//出栈
bool Pop(SqStack &S,ElemType &x){
//判断是否为空栈
if(S.top==-1)
return false;
x=S.data[S.top--];
printf("%d\n",x);
return true;
}
//获取栈顶元素
bool GetTop(SqStack S,ElemType &x){
if(S.top==-1)
return false;
x=S.data[S.top];
printf("%d\n",x);
return true;
}
int main()
{
SqStack s;
int m,x;
initStack(s);
Push(s,3);
Push(s,6);
Push(s,9);
Push(s,12);
Pop(s,x);
GetTop(s,x);
m = StackEmpty(s);
printf("%d\n",m);
return 0;
}
非指针实现进栈、出栈、获取栈顶元素
最新推荐文章于 2023-05-16 23:34:20 发布