#include <stdio.h>
#include <stdlib.h>
#include <string.h>
//顺序栈
typedef struct {
int data[10];
int top;//用于指向栈顶元素
}sqStack;
//初始化一个空栈
void InitStack(sqStack &S){//需要改变栈内部的值,所以用引用类型
S.top=-1;//空栈的数组0下标也无元素,所以初始值为-1
}
//判断空栈
bool EmptyStack(sqStack S){ //直接用传递过来的值,所以不用引用类型
if (S.top==-1){
printf("此栈为空栈\n");
return true;
}
return false;
}
//入栈
bool PushStack(sqStack &S,int value){
//需要判断栈是否满
if (S.top==9){
return false;
}
S.data[++S.top]=value;//栈顶指针加1,并将value传进去
return true;
}
//遍历栈中的值
void GetStack(sqStack S){
for (int i = 0; i <= S.top; ++i) {
printf("%d\t%d\n",i,S.data[i]);
}
}
//出栈
bool PopStack(sqStack S){
//判断是否是空栈
if (S.top==-1){
return false;
}
S.top--;
return true;
}
int main(){
sqStack s;
InitStack(s);
EmptyStack(s);
PushStack(s,10);
GetStack(s);
return 0;
}