两个栈共享同一存储空间
来源:互联网 发布:单片机开发板能做什么 编辑:程序博客网 时间:2024/04/25 15:24
#include <iostream>using namespace std;const int StackSize = 100;class BothStack{private: int data[StackSize]; ///存放两个栈的数组 int top1, top2; ///两个栈的栈顶指针,分别为各自栈顶元素在数组中的下标public: BothStack() { top1 = -1; top2 = StackSize; } ///构造函数,将两个栈分别初始化 ~BothStack() {} ///析构函数为空 void Push(int i, int x); //入栈操作,将元素x压入栈i int Pop(int i); ///出栈操作,对栈i执行出栈操作) int Empty(int i) { if (top1 == -1 && top2 == StackSize) return 1; else return 0; } ///判断栈是否为空};void BothStack::Push(int i, int x) ///入栈操作,将元素x入栈{ if (top1 == top2 - 1) throw "上溢"; ///判断是否栈满 if (i == 1) data[++top1] = x; ///在栈1中插入 if (i == 2) data[--top2] = x; ///在栈2中插入}int BothStack::Pop(int i) ///出栈操作,将栈顶元素弹出{ if (i == 1) { ///在栈1中删除 if (top1 == -1) ///判断栈1是否为空 throw "下溢"; return data[top1--]; } if (i == 2) { ///在栈2中删除 if (top2 == StackSize) ///判断栈2是否为空 throw "下溢"; return data[top2++]; }}int main(){BothStack B;B.Push(1,1);B.Push(2,2);B.Push(1,3);B.Push(2,4);cout << B.Pop(1) <<endl;cout << B.Pop(1) <<endl;cout << B.Empty(1) <<endl; return 0;}
0 0
- 两个栈共享同一存储空间
- 算法导论 顺序双向栈——两个栈共享同一存储空间
- 两个栈共享一块存储空间新解
- 两栈共用同一存储空间
- 数据结构:两栈共享存储空间
- 数据结构:两栈共享存储空间
- 两栈共享存储空间算法
- 两栈共享存储空间(用一个数组存储两个栈)
- 共享静态变量存储空间
- Linux共享存储空间
- 大话数据结构七:两栈共享存储空间(双向栈)
- C++实现顺序栈之两栈共享存储空间
- 大话数据结构七:两栈共享存储空间(双向栈)
- 数据结构与算法之——两栈共享存储空间
- 两个栈共用一个顺序存储空间的代码
- 不同终端登录同一台服务器两个用户可同时共享一个shell终端
- 同一页面两个CKEDITER
- 迅雷vip6账号共享!百万G存储空间
- Android从网络中获取图片
- 《数据结构》第2章 线性表 知识点总结导图
- 调用webservice
- 可靠性与系统性能评测基础知识
- zoj 1095 - Humble Numbers
- 两个栈共享同一存储空间
- 实现strcmp函数的功能代码和字符数组的运用
- 理解Linux系统中的load average
- windows下 scrapy 安装
- 软件的自动化生成和配置补充
- 单链表逆置
- 逆波兰式
- 我的编程学习日志(9)--交换A,B值得方法(相加,异或,swap函数)
- 《数据结构》 实验3