1、栈和队列分析

栈是一种特殊的线性表。其特殊性在于限定插入和删除数据元素的操作只能在线性表的一端进行

队列(Queue)也是一种运算受限的线性表,它的运算限制与栈不同,是两头都有限制,插入只能在表的一端进行(只进不出),而删

除只能在表的另一端进行(只出不进),允许删除的一端称为队尾(rear),允许插入的一端称为队头 (Front)。

2、两个队列实现一个栈:利用队列先进先出的特性,在队列一队头中插入一系列数据,只能从队尾删除数据,而此时再定义队列二,

把队列一先进入队列的数据存放在队列二,然后删除队列一最新插入的数据,从而模拟实现栈先插入进来的数据先出栈的功能。

//两个队列实现一个栈
/*
template<class T>
class CStack
{
public:void appendHead(const T&x)   //从栈顶插入元素{q1.push(x);}T deleteTail()   //从栈顶删除元素{if (q2.size() <= 0){while (q1.size()-1){T value = q1.front();q1.pop();q2.push(value);}}T tail = q1.front();q1.pop();return tail;}
private:queue<T> q1;queue<T> q2;
};//测试
void main()
{CStack<int> st;st.appendHead(5);st.appendHead(2);st.appendHead(3);st.appendHead(9);st.appendHead(3);st.appendHead(2);cout << st.deleteTail() << endl;
}
*/

2、两个栈实现一个队列:道理和两个队列实现一个栈的原理类似,在此不再赘述

//两个栈实现一个队列
//栈:先进后出
//队列:先进先出template<class T>
class TwoQueue
{
public:TwoQueue(){}void In_Queue(const T&x)  //从队尾插入数据{s1.push(x);}T Out_Queue(){if (s2.size() == 0){while (!s1.empty()){T value=s1.top();s1.pop();s2.push(value);}}if (s2.size() > 0){T head = s2.top();s2.pop();return head;}else{return NULL;}}T Front_Queue(){if (s2.size() > 0){T head = s2.top();return head;}else{return NULL;}}size_t Empty_Queue(){return (s2.size()==0);}private:stack<T> s1;   stack<T> s2;
};int main()
{TwoQueue<int> tq;tq.In_Queue(1);tq.In_Queue(2);tq.In_Queue(3);tq.In_Queue(4);cout << tq.Out_Queue() << endl;cout << tq.Out_Queue() << endl;cout<<tq.Front_Queue()<< endl;cout<<tq.Empty_Queue() <<endl;cout << tq.Out_Queue() << endl;cout << tq.Out_Queue() << endl;cout<<tq.Empty_Queue() <<endl; system("pause");return 0;
}*/

数据结构:栈和列之如何用两个队列实现一个栈?两个栈实现一个队列?相关推荐

  1. python表格多列合并_python 合并excel表格数据-如何用python从excel中同时提取两个列的数据,并生成dict(用xlrd)...

    用Python导出工程文件两个子页里的数据成为两个excel表格,但我想把它合并成个一个excel表格的两个sheet 可以采用一些操作Excel块去实现,比如xlrd.xlwt.openpyxl.x ...

  2. Interview:算法岗位面试—上海某公司算法岗位(偏机器学习,互联网金融行业)技术面试考点之数据结构相关考察点—斐波那契数列、八皇后问题、两种LCS问题

    ML岗位面试:上海某公司算法岗位(偏机器学习,互联网金融行业)技术面试考点之数据结构相关考察点-斐波那契数列.八皇后问题.两种LCS问题 Interview:算法岗位面试-上海某公司算法岗位(偏机器学 ...

  3. java 散列集_java数据结构之散列集HashSet与散列表Hashtable

    java数据结构之散列集HashSet与散列表Hashtable 1.散列集HashSet HashSet类在java.util包中 A.构造方法:HashSet() B.常用方法 public bo ...

  4. java中怎么创建栈_这个题如何用栈解呢?

    每日温度 今天又给大家挑了一道十分经典的题目,也是一道面试常考题目,所以大家记得打卡啊,我们先来看一下题目描述,题目很容易理解,而且用暴力法也很容易实现,因为这个题目出现了我们的栈的模块,大家能不能用 ...

  5. 考研复习之数据结构笔记(五)栈和队列(上)(包含栈的相关内容)

    目录 一.栈的定义 1.1相关概念与特点 (1)相关概念 (2)相关特点 (3)栈的运算 (4)顺序栈和链式栈的区别 二.栈的表示和实现 2.1顺序栈的表示和实现 (1)结构体定义 (2)建立空栈 ( ...

  6. 编写程序,使用一维数组,模拟栈数据结构。 要求: 1、这个栈可以存储java中的任何引用类型的数据。 2、在栈中提供push方法模拟压栈。(栈满了,要有

    代码 /*第一题:编写程序,使用一维数组,模拟栈数据结构.要求:1.这个栈可以存储java中的任何引用类型的数据.2.在栈中提供push方法模拟压栈.(栈满了,要有提示信息.)3.在栈中提供pop方法 ...

  7. Excel比较两个工作表(Sheet)的两组列数据,并返回相应数据

    近日有朋友问我有关于怎么比较Excel两个工作表(Sheet)的两组列数据的方法,老实说我对Excel并不是很清楚,对Excel的研究也公仅限于VBA而已,既然朋友开口问了,不好推脱动手就试试吧. 问 ...

  8. 两列模糊对比 oracle,excel 模糊比对两列数据并将比对结果显示出来 | excel表格两列数据模糊对比...

    excel2016如何将两列完全不一样的数据进行模糊对比? B2单元格输入公式=IF(ISNUMBER(FIND(LEFT(A2,3),PHONETIC(G$2:G$8))),"" ...

  9. oracle 两表两列数据对比_当表中的列数不同时,如何比较oracle中的两个表

    INTRO:下面我将展示如何做到"手工"这些工具(例如SQL Developer)可以做得更快更好.我对此(和你的!)的兴趣是双重的:学习和使用一些可以帮助解决许多其他问题的想法; ...

最新文章

  1. 如何在HTML页面中插入百度地图
  2. 五十五张图告诉你微服务的灵魂摆渡者Nacos究竟有多强?
  3. Activiti工作流入门
  4. 动态输出html一些效果失效的处理
  5. python 中 pynlpir错误 Cannot Open Configure file pynlpir解决
  6. 未定义标识符 stringc/c++(20)_天津港20款丰田塞纳四驱顶配现车价格优惠
  7. Spring Cloud Gateway (六) 自定义 Global Filter
  8. IE, Firefox, Chrome共同的保存图片bug? 求助。
  9. Entity Framework 4 in Action读书笔记——第六章:理解实体的生命周期(一)
  10. OSChina 周一乱弹 —— 有钱人的故事真让人心动
  11. 火爆互动小游戏源码接入方法,需要的产品人请查收
  12. 《Chrome插件英雄榜》第88篇更新!知乎网页助手让网页版知乎更好用
  13. html实时获取树莓派温湿度,在树莓派上获取美国天气预报
  14. php检索本地文件,神器:不仅秒搜本地文件,还能1秒在线检索文献!
  15. 聪明的人脸识别4——Pytorch 利用Retinaface+Facenet搭建人脸识别平台
  16. 什么是http接口?
  17. 基于AForge.Net框架的扑克牌识别
  18. VUE整合信通身份证阅读器返回读取到的数据或将身份证图片返回
  19. 从零开始学Linux内核驱动--(二)简单内核模块驱动程序
  20. Diffusion-weighted in MRI 学习笔记

热门文章

  1. 解决 : Apache Tomcat/8.0.0-RC1 - Error report ... HTTP Status 404
  2. FreeSql 访问 Oracle 解决大小写问题
  3. 性能优化之节流、防抖
  4. zxing .net 多种条码格式的生成
  5. Tomcat 配置详解/优化方案
  6. [转]char * 和字符数组
  7. Geometric Shapes - POJ 3449(多边形相交)
  8. Actionbarsherlock Demo 浅析 :Overlay
  9. Android企业级程序完全退出的解决方案
  10. 探讨C#中字符串的加密