文章目录

  • 一、数组实现固定栈和队列

    • 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_数组实现固定栈和队列+栈与队列相互实现相关推荐

  1. c++数据结构队列栈尸体_一本正经的聊数据结构(3):栈和队列

    前文传送门: 「一本正经的聊数据结构(1):时间复杂度」 「一本正经的聊数据结构(2):数组与向量」 引言 前一篇内容我们介绍了数组和向量,虽然说向量是数组的一个升级版,但是在另一个维度上,他们都属于 ...

  2. 简单数据结构(队列 栈 树 堆 )

    基础知识 基本概念 程序 = 算法 + 数据结构数据结构是计算机存储.组织数据的方式.数据结构是指相互之间存在一种或多种特定关系的数据元素的集合.通常情况下,精心选择的数据结构可以带来更高的运行或者存 ...

  3. 用栈实现队列和用队列实现栈

    首先需要使用上篇文章(用数组实现栈和队列)中的栈和队列两个类 1.栈实现队列:思路是有两个栈,一个用来放数据(数据栈),一个用来辅助(辅助栈).数据添加时,会依次压人栈,取数据时肯定会取栈顶元素,但我 ...

  4. java 栈 队列 接口_Java队列接口

    java 栈 队列 接口 介绍: 队列是FIFO(先进先出)抽象数据类型(ADT). 换句话说,按插入顺序将元素删除. java.util.Queue是Java 中的接口,并且从java.util.C ...

  5. 计算机二级循环队列知识点,考点!计算机二级考试公共基础知识冲刺复习笔记:栈、队列和循环队列...

    小编所收集到的相关计算机二级考试公共基础知识冲刺复习笔记:栈.队列和循环队列的资料 大家要认真阅读哦! 1.栈(Stack)又称堆栈. (1)栈是一种运算受限的线性表,其限制是仅允许在表的一端进行插入 ...

  6. 栈(Stack)与队列(Queue)

    定义 栈:后进先出(LIFO-last in first out):最后插入的元素最先出来. 队列:先进先出(FIFO-first in first out):最先插入的元素最先出来. 图示 在这里插 ...

  7. freemarker 数组转字符串_TypeScript 实战算法系列(一):实现数组栈与对象栈

    本文由图雀社区认证作者 神奇的程序员 写作而成,图雀社区将连载其TypeScript 实战算法系列,点击阅读原文查看作者的掘金链接,感谢作者的优质输出,让我们的技术世界变得更加美好? 前言 栈作为一种 ...

  8. 固定尺寸内存块的缓冲队列类及C++实现源代码

    -------------------------------------------------------------------------------- 标题: 固定尺寸内存块的缓冲队列类及实 ...

  9. 3-8-循环队列-栈和队列-第3章-《数据结构》课本源码-严蔚敏吴伟民版

    课本源码部分 第3章  栈和队列 - 循环队列 --<数据结构>-严蔚敏.吴伟民版        源码使用说明  链接☛☛☛ <数据结构-C语言版>(严蔚敏,吴伟民版)课本源码 ...

最新文章

  1. mysql 事件_区块链研究实验室 | 使用MySQL存储以太坊事件
  2. K8s 集群节点在线率达到 99.9% 以上,扩容效率提升 50%,我们做了这 3 个深度改造
  3. replugin源码解析之replugin-host-gradle(宿主的gradle插件)
  4. python对文件的操作模式_python对文件的操作
  5. 音视频技术开发周刊:FFmpeg内置的一个无中生有的音视频输入数据 | 214
  6. 2019年末逆向复习系列之努比亚Cookie生成逆向分析
  7. php 父子进程通信,PHP 进程及进程间通信
  8. Struts 2初体验
  9. 服务器系统核心和带gui区别,Windows Server 2012图形用户界面(GUI)和服务器核心(Server Core)之间的切换...
  10. 嵌入式操作系统_航天科工海鹰翼辉嵌入式操作系统获自主原创“身份证”
  11. mysql to data_mysql str_to_date 字符串转换为日期
  12. mysql前179天_做up主179天的经历
  13. Hive 中类SQL语言中的 oder by,gruop by的区别
  14. Python的map() 函数
  15. Windows7安装PADS2007详细步骤____亲自实验总结
  16. eclipse字体大小调整
  17. android pad刷机,安卓平板刷机,谨防平板变砖头!
  18. UE4特效系列笔记①
  19. 马尔可夫不等式和切比雪夫不等式
  20. 一个好用的hibernate泛型dao

热门文章

  1. Mybatis中example的使用
  2. Maven项目无法加载jdbc.properties
  3. c语言银行卡管理系统程序设计报告,《c语言程序设计》课程设计报告-职工信息管理系统.doc...
  4. php java 通信_PHP与Java进行通信的实现方法
  5. 服务器系统盘最佳设置,启用系统的硬盘高级性能设置优化硬盘到最佳性能
  6. php算法入门,a011.PHP实战:加密解密,简单算法入门
  7. 【每日SQL打卡】​​​​​​​​​​​​​​​DAY 4丨员工薪水中位数【难度困难】
  8. 两种列式存储格式:Parquet和ORC
  9. 消息中间件 --- Kafka快速入门
  10. MySQL中information_schema