将编号为0和1的两个栈存放于一个数组空间V[m]中,栈底分别位于数组的两端。 当第0号栈的栈顶指针top[0]等于-1时该栈为空;当第1号栈的栈顶指针top[1]等于m时,该栈为空。
将编号为0和1的两个栈存放于一个数组空间V[m]中,栈底分别位于数组的两端。
当第0号栈的栈顶指针top[0]等于-1时该栈为空;当第1号栈的栈顶指针top[1]等于m时,该栈为空。
两个栈均从两端向中间增长。试编写双栈初始化,判断栈空、栈满、进栈和出栈等算法的函数。
注意
左栈是通常意义的栈,右栈的入栈操作(栈顶指针减1),出栈操作(栈顶指针加1)
#include <stdio.h>
typedef int ElemType;
typedef struct
{int top[2], bot[2];ElemType *V;int m;
}DblStack;
bool Init(DblStack *stk)
{stk->top[0] = -1;stk->top[1] = stk->m;stk->bot[0] = 0;stk->bot[1] = stk->m - 1;return 1;//初始化成功
}
int push(DblStack *stk, int i, int val)
{if (stk->top[1] - stk->top[0] == 1){printf("OverFlow!/n");return 0;}switch (i){case 0:V[++top[0]] = val;return 1;break;case 1:V[--top[1]] = val;return 1;break;default:printf("Error stack!\n");return 0;}
}
ElemType pop(DblStack *stk, int i)
{switch (i){case 0:if (stk->top[0] == -1)printf("左栈为空!\n");elsereturn stk->V[top[0]--];case 1:if (stk->top[1] == m)printf("右栈为空!\n");elsereturn stk->V[top[1]++];default:}
}
int Empty(DblStack *stk)
{return (stk->top[0] == -1 && stk->top[1] == m);
}
将编号为0和1的两个栈存放于一个数组空间V[m]中,栈底分别位于数组的两端。 当第0号栈的栈顶指针top[0]等于-1时该栈为空;当第1号栈的栈顶指针top[1]等于m时,该栈为空。相关推荐
- 将编号为0和1的两个栈存放于一个数组空间V[m]中。
目录 1.题目描述 2.算法实现 1.题目描述 将编号为0和1的两个栈存放于一个数组空间V[m]中,栈底分别处于数组的两端.当第0号栈的栈顶指针top[0]等于-1时该栈为空:当第1号栈的栈顶指针to ...
- Python 将两个三维模型(obj)合成一个三维模型(obj)
本文主要针对想要将两个obj保存的三维模型合成一个三维模型即obj文件保存.这样就可以同时观察并对比两个三维模型.Trimesh是对三维网格模型处理十分好用的库,本次代码即基于此库! ######## ...
- 【数据结构】-顺序栈(初始化栈顶指针为0)
顺序栈-初始化栈顶指针为0 1.头文件及类型定义 2.顺序栈类型定义 3.函数声明 4.基本操作 4.1 初始化顺序栈 4.2 判空 4.3 入栈 4.4 出栈 4.5 读取栈顶元素 4.6 main ...
- 【黑马程序员 C++教程从0到1入门编程】【笔记1】数据类型、运算符、程序流程结构、数组、函数、指针、结构体
黑马程序员匠心之作|C++教程从0到1入门编程,学习编程不再难 文章目录 1.C++初识 1.1 第一个c++程序 1.2 注释 1.3 变量 1.4 常量 1.5 关键字 1.6 标识符命名规则 2 ...
- 动态内存管理和智能指针 2.0 -- shared_ptr
shared_ptr出现原因 通过第一章的学习,我们知道不管是auto_ptr合适scoped_ptr都是存在缺陷的,于是我们必须想出一个方法既能很好的管理我们的内存,而且在使用的时候,可以多个指针指 ...
- Kaggle大牛小姐姐自述:我是怎么成为竞赛中Top 0.3%的 | 干货攻略
原文:Lavanya Shukla 铜灵 编译整理 量子位 出品 | 公众号 QbitAI 天天跟数据打交道的研究人员,都有一个成为Kaggle顶级大师(Grandmaster)的梦想. 但每年的Ka ...
- Kaggle 美女小姐姐自述:我是怎么成为竞赛中 Top 0.3% 的?
本文转载自量子位,禁二次转载 天天跟数据打交道的研究人员,都有一个成为Kaggle顶级大师(Grandmaster)的梦想. 但每年的Kaggle参赛团队众多,通常一个项目都有数千人至上万人报名,如何 ...
- java分配数组空间使用的关键字_创建数组时为数组元素分配内存空间的 Java 关键字是________(5.0分)_学小易找答案...
[填空题]若已有数组说明"char s[];",则创建 20 个字符的数组的语句是s=______________; (5.0分) [单选题]下列关于数组的描述错误的是(3.0分) ...
- 一台服务器上使用docker安装redis6.0.10一主两从以及哨兵模式
查看redis官网,发现新版稳定为:redis6.0.10 先决条件: 服务器使用我的阿里云服务器:CentOS 7.6 64位 安装docker环境:https://blog.csdn.net/we ...
- Python学习笔记03----一个环形的公路上有n个加油站,编号为0,1,2,...n-1, 每个加油站加油都有一个上限,保存在列表limit中,即limit[i]为第i个加油站加油的上限
题目: 一个环形的公路上有n个加油站,编号为0,1,2,...n-1,每个加油站加油都有一个上限,保存在列表limit中,即limit[i]为第i个加油站加油的上限,而从第i个加油站开车开到第(i+1 ...
最新文章
- ImageView 常用属性的分析
- 三星出了个AI黑科技,不只是“换脸”这么简单
- Uncaught ReferenceError: layer is not defined
- 数据库 sqlite 进阶
- 绝地求生7月5日服务器维护,绝地求生7月5日更新到几点 吃鸡更新维护公告
- 天龙八部手游有网络显示网络或服务器异常,天龙八部手游微信登录不了_微信登录异常解决办法_玩游戏网...
- 工作了五年才明白的道理,这些原来我一开始就做错了
- 1.1HashMap
- 严蔚敏版数据结构视频讲解
- cad如何生成kml文件_如何制作KML文件?
- 在计算机中()个字节称为MB,计算机基础考试题库(范文).doc
- Word 电子签名简单制作方法
- HTML制作菜鸟教程网站首页
- 电脑如何去除视频水印?
- wei.getA()
- 融金所-孙明达:中国普惠金融覆盖率已属较高水平
- 计算机制图如何绘制太极图,太极图,如何用PS绘制太极图?
- 各种Mapping的区别
- FFmpeg内存管理
- 【软件工程实践】Hive研究-Blog7