写在前面:博主是一位普普通通的19届双非软工在读生,平时最大的爱好就是听听歌,逛逛B站。博主很喜欢的一句话
花开堪折直须折,莫待无花空折枝
:博主的理解是头一次为人,就应该做自己想做的事,做自己不后悔的事,做自己以后不会留有遗憾的事,做自己觉得有意义的事,不浪费这大好的青春年华。博主写博客目的是记录所学到的知识并方便自己复习,在记录知识的同时获得部分浏览量,得到更多人的认可,满足小小的成就感,同时在写博客的途中结交更多志同道合的朋友,让自己在技术的路上并不孤单。
1.双栈问题
将编号为0和1的两个栈存放在一个数组空间V[m],栈低分别处于数组的两端当第0号栈的栈顶指针top[0]等于-1的时候栈为空,当1号栈的栈顶指针top[1]等于m时该栈为空,两个栈均从两端向中间增长,要求我们编写对双栈初始化,判断栈空,判断栈满,进栈出栈等算法函数
这里我们需要从题目获取的信息如下:
- 两栈共享空间的原理是一个数组
- 0号栈top[0]等于-1时,该栈为空,1号栈top[1]为m时,该栈为空
2.代码分析
#include<iostream>
using namespace std;
#define Status int
#define OK 1
#define ERROR 0
typedef struct{
int top[2];//栈顶指针
int bot[2];//栈低指针
SElemType *V;//栈数组
int m;