1.顺序存储实现栈



通过栈顶来添加数据

栈顶为空时,top=-1
#define MaxSize 50typedef int ElemType;typedef struct {ElemType data[MaxSize];//数组存放数据int top;//top就是数组下标,最初为-1,表示栈空,最多为MaxSize-1代表栈满}SqStack;//初始化栈void InitStack(SqStack &S) {S.top = -1;}//bool StackEmpty(SqStack S) {if (S.top == -1)return true;return false;}bool Push(SqStack &S,ElemType x) {if (S.top == MaxSize - 1)return false;//判断栈满了S.data[++S.top] = x;//也可以写成S.top++; S.data[S.top] = x;//为什么S.data[S.top]=x; ++S.top;不行return true;//返回true就是入栈成功}//实现栈,可以用数组,也可以用链表,这里使用数组(顺序存储)int main() {SqStack S;//先进后出FILO,后进先出LIFObool flag;InitStack(S);flag = StackEmpty(S);if (flag) {printf("栈是空的");}Push(S,3);Push(S,4);Push(S,5);return 0;}
放入3个数据后:
