栈是我们经常会用到的一种数据结构,下面我们就来看一下如何使用C语言来实现一个静态栈,并且使用它来解决一个经典的问题——括号匹配问题
首先我们来看一下栈的自定义类型,我们需要一个数组来存放栈中的元素,并且需要一个数字来表明目前栈顶所在的位置,所以栈的自定义类型如下
#define Max_Size 100
typedef char DataType;
typedef struct //自定义结构体stack
{
DataType _Stack[Max_Size];
DataType _top;
}Stack;
接下来就是栈的功能,我们需要它能实现以下功能
void StackInit(Stack* s); // 栈的初始化
void StackPush(Stack* s, DataType data); // 入栈
DataType StackTop(Stack* s); // 出栈
int StackSize(Stack* s); // 获取栈顶元素
void StackPop(Stack* s); // 获取栈中元素个数
int StackEmpty(Stack* s); // 检测栈是否为空
void Print(Stack* s); // 打印栈顶元素
具体实现方法如下
void StackInit(Stack* s) // 栈的初始化
{