#include<stdio.h>數組
#include<stdlib.h>函數
#define MAXSIZE 10code
typedef int DataType;it
typedef struct Stack{ DataType stack[MAXSIZE];//定義數組io
int top;//棧頂只是去top
}StackSeq;di
void initStack(StackSeq *seq);//初始化co
int isEmpty(StackSeq seq);//非空return
int StackPush(StackSeq *seq,DataType x);//插入函數void
int stackPop(StackSeq *seq,DataType *x);//出棧
int stackGet(StackSeq seq,DataType *d);//取棧頂元素
int main(void){ int x,i; StackSeq seq; initStack(&seq); isEmpty(seq); for(i=0;i<10;i++) StackPush(&seq,i+1); //stackGet(seq,&x); for(i=0;i<10;i++){
stackPop(&seq,&x); printf("x=%d\n",x); } printf("%d\n",seq.top); isEmpty(seq); return 0; }
void initStack(StackSeq *seq) { seq->top=0; }
int StackPush(StackSeq *seq,DataType x){ if(seq->top==MAXSIZE){ printf("順序棧滿\n"); return 0; } seq->stack[seq->top]=x; seq->top++; printf("入棧成功\n"); return 1;
} int isEmpty(StackSeq seq){ if(seq.top<=0){ printf("空\n"); return 0; }
if(seq.top>0){ printf ("非空\n"); return 1; }
}
int stackPop(StackSeq *seq,DataType *x){ if(seq->top<=0){ printf("棧空\n"); return 0; } seq->top--; *x=seq->stack[seq->top];
printf("出棧成功\n"); return 1;
}
int stackGet(StackSeq seq,DataType *d){ if(seq.top<=0){ printf("取棧頂元素空\n"); return 0; }
*d=seq.stack[seq.top-1]; printf("取棧頂元素成功\n"); return 1;
}