如果以指针形式传入顺序栈,输出时要注意不能改变栈原本的指针所指的位置。不管其他形式,总之就是不能改变原有栈中任何内容,并且输出栈中元素,那么直接定义下标即可
建立顺序栈
#define MaxSize 100
struct SeqStack{
DataType elem[MaxSize];
int top;
}S;
打印栈
void printStack(SeqStack *S){
for(int i=S->top;i>=0;i--)
printf("%d ",S->elem[i]);
}
入栈
void push(SeqStack *S,DataType x){//此处的top指代栈的下标,初始化为-1,故++S->top
if(isEmpty(&S)||S.top==MaxSize-1)return;
S->elem[++S->top]=x;
}
判断顺序栈是否为空
//除了打印栈内容都是紫薯补丁罢了= =紫薯太少不给发布
bool isEmpty(SeqStack *S){
if(S->top==-1)return false;
return true;
}