栈的复习
#include<bits/stdc++.h>
#define maxSzie 10
typedef struct Stack {
int *base;
int *top;
int stackSize;
} Stack;
int initeStack(Stack &s) {
s.base = new int[maxSzie];
if(!s.base) {
return 0;
} else {
s.top = s.base;
s.stackSize = maxSzie;
return 1;
}
}
//入栈
int push(Stack &s,int v) {
if(!s.base) {
return -1;
}
if(s.top-s.base==s.stackSize) {
printf("栈满!\n");
return 0;
} else {
*s.top = v;
s.top++;
return 1;
}
}
//出栈
void pop(Stack &s,int *v){
if(!s.base){
return;
}
if(s.base==s.top){
printf("栈空!\n");
return;
}else{
s.top--;
*v = *s.top;
return;
}
}
int main(){
Stack s ;
initeStack(s);
push(s,1);
int v ;
pop(s,&v);
printf("出栈:%d",v);
}