必备知识
栈(stack):只允许在一端进行插入或删除操作的线性表。先进后出,FILO。
元素入栈:S.data[++S.top]=x;
元素出栈:x=S.data[S.top–];
在进行入栈操作时,首先要检查栈是否满了,如果栈满,就不能进行入栈操作,如果栈没满,可进行入栈操作。栈满条件为:S.top等于MaxSize-1;
同理,在进行出栈操作时,首先要检查栈是否为空,如果栈为空,就不能进行出栈操作,如果栈不为空,可进行出栈操作。栈为空的条件为:S.top等于-1;
代码编写思想
1.创建线性表
2.对线性表进行初始化
3.元素入栈
4.元素出栈
以下代码测试运行环境为visual studio-2019
//顺序存储实现栈
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<stdlib.h>
typedef int ElemType;
typedef struct {
ElemType data[50];
int top;//栈顶
}SqStack;
void InitStack(SqStack& S) {
S.top = -1;