首先,我们要清楚什么是栈,我这里提供两个比喻,你觉得什么比较好理解就用哪个。
第一个是“小甲鱼”(一个网络老师)说的“插进去拔出来”,
第二个是我的课程老师说的“栈就是一个子弹夹”。我觉得相当形象,在不理解的时候,可以画一个子弹夹,模拟装弹,和射击时子弹消耗的过程。
这两个过程都体现了的栈“先进后出”。
本篇是我的一些笔记,也适合那些上课听不懂又想学的人,我注释了很多东西,希望能帮到你。
(1)初始化栈s。
(2)判断栈s是否为空。
(3)依次进栈元素a、b、c、d、e。
(4)判断栈s是否为空。
(5)输出栈s序列。
(6)释放栈s。
#include <stdio.h>
#include <malloc.h>
#define MAX_SIZE 100 //定义数组的长度为100
#define OK 1 //定义OK相当于1
#define ERROR 0 //定义ERROR相当于1
typedef char Elemtype;
typedef struct
{
Elemtype data[MAX_SIZE]; //char data[100]
int top; //记住这个top,他就相当于子弹夹进弹的地方。
}*SqStack; //结构体指针变量名
//如果这里写了 *SqStack,那么后面的形参就是 SqStack &s(涉及增减的函数)
//如果这里写了 SqStack,那就对应 Sqstack *&s。
void InitStack(SqStack &s)

这篇博客通过比喻解释了栈的“先进后出”特性,提供了初始化、判断空栈、进栈元素、判断空栈、输出栈序列和释放栈等基本操作的实现,适合初学者理解。


被折叠的 条评论
为什么被折叠?



