#include <stdio.h>
#include <stdlib.h>
typedef struct SNode *PtrToSNode;
struct SNode{
int *data;
int top;
int MAXSIZE;
};
typedef PtrToSNode Stack;
Stack CreateStack(int MAXSIZE){
Stack S;
S=(Stack)malloc(sizeof(struct SNode));
S->data=(int *)malloc(MAXSIZE *sizeof(int));
S->top=-1;
S->MAXSIZE=MAXSIZE;
return S;
}
bool IsFull(Stack S){
return (S->top==S->MAXSIZE-1);
}
bool push(Stack S,int x){
if(IsFull(S)){
printf("表已满!");
return false;
}
else{
S->data[++(S->top)]=x;
return true;
}
}
bool IsEmpty(Stack S){
return (S->top==-1);
}
int pop(Stack S){
if(IsEmpty(S)){
printf("表已空!");
return -1;
}else{
return (S->data[(S->top)--]);
}
}
void main(){
Stack S=CreateStack(10);
int n,x,p;
printf("请输入入栈个数:");
scanf("%d",&n);
for(int i=0;i<n;i++){
scanf("%d",&x);
push(S,x);
}
while(!IsEmpty(S)){
p=pop(S);
printf("%d ",p);
}
printf("\n");
}
转载请注明原文地址:https://blackberry.8miu.com/read-18324.html