实现if_数组实现固定栈和队列+栈与队列相互实现
文章目录
- 一、数组实现固定栈和队列
- 1.数组实现固定栈
- 2.数组实现固定队列
- 二、栈与队列相互实现
- 1.两个队列实现栈
- 2.两个栈实现队列
一、数组实现固定栈和队列
1.数组实现固定栈
代码如下:
class ArrayStack
{private:int *arr;int index;
public:ArrayStack(int initSize){if(initSize>=0){arr=new int[initSize];}index=0;}void push(int obj){if(index!=arr.size()){arr[index++]=obj;}}int pop(){if(arr.size()!=0){return arr[--index];}return 0;}int peek(){if(index!=0)return arr[index-1];return 0;}
};
2.数组实现固定队列
代码如下:
class ArrayQueue {private: int* arr;int size;int first;int last;public: ArrayQueue(int initSize) {if (initSize < 0) {cout<<"error"<<endl;}arr = new int[initSize];size = 0;first = 0;last = 0;}int peek() {if (size == 0) {return null;}return arr[first];}void push(int obj) {if (size == arr.size()) {cout<<"error"<<endl;}size++;arr[last] = obj;last = last == arr.size() - 1 ? 0 : last + 1;}int poll() {if (size == 0) {cout<<"error"<<endl;}size--;int tmp = first;first = first == arr.size() - 1 ? 0 : first + 1;return arr[tmp];}};
二、栈与队列相互实现
1.两个队列实现栈
代码如下:
class TwoQueueStack
{private:queue<int> data;queue<int> help;
public:TwoQueueStack(){data=new list<int>();help=new list<int>();}void my_push(int obj){data.push(obj);}int my_pop(){while(data.size()>1){help.push(data.front());data.pop();}int res=data.front();swap();return res;}int peek(){while(data.size()>1){help.push(data.front());data.pop();}int res=data.front();help.push(res);swap();return res;}
} ;
2.两个栈实现队列
代码如下:
class TwoStacksQueue {private: stack<int> stackPush;stack<int> stackPop;public:TwoStacksQueue() {stackPush = new stack<int>();stackPop = new stack<int>();}void push(int pushInt) {stackPush.push(pushInt);}void pop() {if (stackPop.empty() && stackPush.empty()) {cout<<"Queue is empty!"<<endl;} else if (stackPop.empty()) {while (!stackPush.empty()) {stackPop.push(stackPush.top());stckPush.pop();}}stackPop.pop();return ;}int top() {if (stackPop.empty() && stackPush.empty()) {cout<<"Queue is empty!"<<endl;} else if (stackPop.empty()) {while (!stackPush.empty()) {stackPop.push(stackPush.top());stckPush.pop();}}return stackPop.top();}};
实现if_数组实现固定栈和队列+栈与队列相互实现相关推荐
- c++数据结构队列栈尸体_一本正经的聊数据结构(3):栈和队列
前文传送门: 「一本正经的聊数据结构(1):时间复杂度」 「一本正经的聊数据结构(2):数组与向量」 引言 前一篇内容我们介绍了数组和向量,虽然说向量是数组的一个升级版,但是在另一个维度上,他们都属于 ...
- 简单数据结构(队列 栈 树 堆 )
基础知识 基本概念 程序 = 算法 + 数据结构数据结构是计算机存储.组织数据的方式.数据结构是指相互之间存在一种或多种特定关系的数据元素的集合.通常情况下,精心选择的数据结构可以带来更高的运行或者存 ...
- 用栈实现队列和用队列实现栈
首先需要使用上篇文章(用数组实现栈和队列)中的栈和队列两个类 1.栈实现队列:思路是有两个栈,一个用来放数据(数据栈),一个用来辅助(辅助栈).数据添加时,会依次压人栈,取数据时肯定会取栈顶元素,但我 ...
- java 栈 队列 接口_Java队列接口
java 栈 队列 接口 介绍: 队列是FIFO(先进先出)抽象数据类型(ADT). 换句话说,按插入顺序将元素删除. java.util.Queue是Java 中的接口,并且从java.util.C ...
- 计算机二级循环队列知识点,考点!计算机二级考试公共基础知识冲刺复习笔记:栈、队列和循环队列...
小编所收集到的相关计算机二级考试公共基础知识冲刺复习笔记:栈.队列和循环队列的资料 大家要认真阅读哦! 1.栈(Stack)又称堆栈. (1)栈是一种运算受限的线性表,其限制是仅允许在表的一端进行插入 ...
- 栈(Stack)与队列(Queue)
定义 栈:后进先出(LIFO-last in first out):最后插入的元素最先出来. 队列:先进先出(FIFO-first in first out):最先插入的元素最先出来. 图示 在这里插 ...
- freemarker 数组转字符串_TypeScript 实战算法系列(一):实现数组栈与对象栈
本文由图雀社区认证作者 神奇的程序员 写作而成,图雀社区将连载其TypeScript 实战算法系列,点击阅读原文查看作者的掘金链接,感谢作者的优质输出,让我们的技术世界变得更加美好? 前言 栈作为一种 ...
- 固定尺寸内存块的缓冲队列类及C++实现源代码
-------------------------------------------------------------------------------- 标题: 固定尺寸内存块的缓冲队列类及实 ...
- 3-8-循环队列-栈和队列-第3章-《数据结构》课本源码-严蔚敏吴伟民版
课本源码部分 第3章 栈和队列 - 循环队列 --<数据结构>-严蔚敏.吴伟民版 源码使用说明 链接☛☛☛ <数据结构-C语言版>(严蔚敏,吴伟民版)课本源码 ...
最新文章
- mysql 事件_区块链研究实验室 | 使用MySQL存储以太坊事件
- K8s 集群节点在线率达到 99.9% 以上,扩容效率提升 50%,我们做了这 3 个深度改造
- replugin源码解析之replugin-host-gradle(宿主的gradle插件)
- python对文件的操作模式_python对文件的操作
- 音视频技术开发周刊:FFmpeg内置的一个无中生有的音视频输入数据 | 214
- 2019年末逆向复习系列之努比亚Cookie生成逆向分析
- php 父子进程通信,PHP 进程及进程间通信
- Struts 2初体验
- 服务器系统核心和带gui区别,Windows Server 2012图形用户界面(GUI)和服务器核心(Server Core)之间的切换...
- 嵌入式操作系统_航天科工海鹰翼辉嵌入式操作系统获自主原创“身份证”
- mysql to data_mysql str_to_date 字符串转换为日期
- mysql前179天_做up主179天的经历
- Hive 中类SQL语言中的 oder by,gruop by的区别
- Python的map() 函数
- Windows7安装PADS2007详细步骤____亲自实验总结
- eclipse字体大小调整
- android pad刷机,安卓平板刷机,谨防平板变砖头!
- UE4特效系列笔记①
- 马尔可夫不等式和切比雪夫不等式
- 一个好用的hibernate泛型dao
热门文章
- Mybatis中example的使用
- Maven项目无法加载jdbc.properties
- c语言银行卡管理系统程序设计报告,《c语言程序设计》课程设计报告-职工信息管理系统.doc...
- php java 通信_PHP与Java进行通信的实现方法
- 服务器系统盘最佳设置,启用系统的硬盘高级性能设置优化硬盘到最佳性能
- php算法入门,a011.PHP实战:加密解密,简单算法入门
- 【每日SQL打卡】​​​​​​​​​​​​​​​DAY 4丨员工薪水中位数【难度困难】
- 两种列式存储格式:Parquet和ORC
- 消息中间件 --- Kafka快速入门
- MySQL中information_schema