1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77
| #include <stdio.h> #include <stdlib.h>
#define MaxSize 50 typedef int ElemType; typedef struct { ElemType data[MaxSize]; int top; } SqStack;
void initStack(SqStack &S) { S.top = -1; }
bool isEmptyStack(SqStack S) { if (-1 == S.top) { return true; } else { return false; } }
bool enStack(SqStack &S, ElemType e) { if (S.top == MaxSize - 1) { return false; } S.data[++S.top] = e; return true; }
bool pop(SqStack &S, ElemType &e) { if (-1 == S.top) { return false; } S.data[S.top--] = e; return true; }
bool getTop(SqStack &S, ElemType &e) { if (-1 == S.top) { return false; } e = S.data[S.top]; return true; }
int main() { SqStack S; bool flag; initStack(S); flag = isEmptyStack(S); if(flag){ printf("栈为空\n"); } enStack(S,2); enStack(S,3); enStack(S,4); ElemType e; flag = getTop(S,e); if(flag){ printf("栈顶元素是:%d\n",e); } flag = pop(S,e); if(flag){ printf("弹出栈顶元素是:%d\n",e); } return 0; }
|