将编号为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时,该栈为空。相关推荐

  1. 将编号为0和1的两个栈存放于一个数组空间V[m]中。

    目录 1.题目描述 2.算法实现 1.题目描述 将编号为0和1的两个栈存放于一个数组空间V[m]中,栈底分别处于数组的两端.当第0号栈的栈顶指针top[0]等于-1时该栈为空:当第1号栈的栈顶指针to ...

  2. Python 将两个三维模型(obj)合成一个三维模型(obj)

    本文主要针对想要将两个obj保存的三维模型合成一个三维模型即obj文件保存.这样就可以同时观察并对比两个三维模型.Trimesh是对三维网格模型处理十分好用的库,本次代码即基于此库! ######## ...

  3. 【数据结构】-顺序栈(初始化栈顶指针为0)

    顺序栈-初始化栈顶指针为0 1.头文件及类型定义 2.顺序栈类型定义 3.函数声明 4.基本操作 4.1 初始化顺序栈 4.2 判空 4.3 入栈 4.4 出栈 4.5 读取栈顶元素 4.6 main ...

  4. 【黑马程序员 C++教程从0到1入门编程】【笔记1】数据类型、运算符、程序流程结构、数组、函数、指针、结构体

    黑马程序员匠心之作|C++教程从0到1入门编程,学习编程不再难 文章目录 1.C++初识 1.1 第一个c++程序 1.2 注释 1.3 变量 1.4 常量 1.5 关键字 1.6 标识符命名规则 2 ...

  5. 动态内存管理和智能指针 2.0 -- shared_ptr

    shared_ptr出现原因 通过第一章的学习,我们知道不管是auto_ptr合适scoped_ptr都是存在缺陷的,于是我们必须想出一个方法既能很好的管理我们的内存,而且在使用的时候,可以多个指针指 ...

  6. Kaggle大牛小姐姐自述:我是怎么成为竞赛中Top 0.3%的 | 干货攻略

    原文:Lavanya Shukla 铜灵 编译整理 量子位 出品 | 公众号 QbitAI 天天跟数据打交道的研究人员,都有一个成为Kaggle顶级大师(Grandmaster)的梦想. 但每年的Ka ...

  7. Kaggle 美女小姐姐自述:我是怎么成为竞赛中 Top 0.3% 的?

    本文转载自量子位,禁二次转载 天天跟数据打交道的研究人员,都有一个成为Kaggle顶级大师(Grandmaster)的梦想. 但每年的Kaggle参赛团队众多,通常一个项目都有数千人至上万人报名,如何 ...

  8. java分配数组空间使用的关键字_创建数组时为数组元素分配内存空间的 Java 关键字是________(5.0分)_学小易找答案...

    [填空题]若已有数组说明"char s[];",则创建 20 个字符的数组的语句是s=______________; (5.0分) [单选题]下列关于数组的描述错误的是(3.0分) ...

  9. 一台服务器上使用docker安装redis6.0.10一主两从以及哨兵模式

    查看redis官网,发现新版稳定为:redis6.0.10 先决条件: 服务器使用我的阿里云服务器:CentOS 7.6 64位 安装docker环境:https://blog.csdn.net/we ...

  10. 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 ...

最新文章

  1. ImageView 常用属性的分析
  2. 三星出了个AI黑科技,不只是“换脸”这么简单
  3. Uncaught ReferenceError: layer is not defined
  4. 数据库 sqlite 进阶
  5. 绝地求生7月5日服务器维护,绝地求生7月5日更新到几点 吃鸡更新维护公告
  6. 天龙八部手游有网络显示网络或服务器异常,天龙八部手游微信登录不了_微信登录异常解决办法_玩游戏网...
  7. 工作了五年才明白的道理,这些原来我一开始就做错了
  8. 1.1HashMap
  9. 严蔚敏版数据结构视频讲解
  10. cad如何生成kml文件_如何制作KML文件?
  11. 在计算机中()个字节称为MB,计算机基础考试题库(范文).doc
  12. Word 电子签名简单制作方法
  13. HTML制作菜鸟教程网站首页
  14. 电脑如何去除视频水印?
  15. wei.getA()
  16. 融金所-孙明达:中国普惠金融覆盖率已属较高水平
  17. 计算机制图如何绘制太极图,太极图,如何用PS绘制太极图?
  18. 各种Mapping的区别
  19. FFmpeg内存管理
  20. 【软件工程实践】Hive研究-Blog7

热门文章

  1. 解决IE下input事件初始化自动执行的问题
  2. 中科探海的海底掩埋物三维实时成像声呐
  3. 2020寒假牛客第一场——G eli和字符串
  4. 33个CadQuery程序化建模实例
  5. Log Parser 2.2 + Log Parser Lizard GUI 分析IIS日志示例
  6. 理解Vulkan中的各种对象
  7. HDU 5442 后缀自动机(从环字符串选定一个位置 , 时针或顺时针走一遍,希望得到字典序最大)...
  8. 批量删除取消微博关注
  9. 前端上传超大文件解决方案
  10. odl源码系列一restconf模块