#include#includeusing namespace std;#define Stack_size 20typedef struct Stack{ int elem[Stack_size]; int top;}Stack;Stack * init(){//初始化一个空栈 Stack *S=(Stack *)malloc(sizeof(Stack)); S->top=-1; return S;}void print(Stack *S){//打印栈元素 for(int i=0;i<=S->top;i++){ cout<<S->elem[i]<<" "; } cout<<endl;}int push(Stack *S,int num){//入栈 if(S->top==Stack_size-1)return -1; S->top++; S->elem[S->top]=num; return 1;}int pop(Stack *S){//出栈 if(S->top!=-1){ int num=S->elem[S->top--]; return num; } return -99999;}int main(int argc, char const *argv[]){ Stack *S; S=init(); push(S,1); print(S); push(S,2); push(S,3); push(S,4); print(S); cout<<"pop "<<pop(S)<<endl; cout<<"pop "<<pop(S)<<endl; cout<<"pop "<<pop(S)<<endl; return 0;}