编写实现顺序栈的各种基本运算,并在此基础上设计一个主函数完成如下功能:

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

首先,我们要清楚什么是栈,我这里提供两个比喻,你觉得什么比较好理解就用哪个。
第一个是“小甲鱼”(一个网络老师)说的“插进去拔出来”,
第二个是我的课程老师说的“栈就是一个子弹夹”。我觉得相当形象,在不理解的时候,可以画一个子弹夹,模拟装弹,和射击时子弹消耗的过程。
这两个过程都体现了的栈“先进后出”。
本篇是我的一些笔记,也适合那些上课听不懂又想学的人,我注释了很多东西,希望能帮到你。

(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)                        
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值