【校招面试 之 剑指offer】第9-2题 用两个队列实现一个栈
#include<iostream>
#include<queue>
using namespace std;
// 对于出栈解决的思路是:将queue1的元素除了最后一个外全部放到queue2中,然后再pop出queue1的最后一个元素...
template<typename T>
void popStack(queue<T> &queue1, queue<T> &queue2){
if(queue1.size() == 0)
return;
// 将queue1中的元素除了最后一个元素外,依次入队queue2中
while(queue1.size() - 1){
queue2.push(queue1.front());
queue1.pop();
}
cout<<"出队元素为:"<<queue1.front()<<endl;
queue1.pop();
// 将queue2的元素放回到queue1中
while(queue2.size()){
queue1.push(queue2.front());
queue2.pop();
}
} template<typename T>
void printStack(queue<T> &queue1){
while(!queue1.empty()){
cout<<queue1.front()<<" ";
queue1.pop();
}
} int main(){ queue<int> queue1;
queue<int> queue2; // 1.实现入栈操作
queue1.push(100);
queue1.push(200);
queue1.push(300); // 2.实现出栈操作
popStack(queue1, queue2); queue1.push(400);
queue1.push(500); popStack(queue1, queue2); printStack(queue1); system("pause");
return 0;
}
运行结果:

【校招面试 之 剑指offer】第9-2题 用两个队列实现一个栈的更多相关文章
- 【校招面试 之 剑指offer】第9-1题 用两个栈实现一个队列
#include<iostream> #include<stack> using namespace std; template <typename T> void ...
- 【校招面试 之 剑指offer】第18题 删除链表中的节点
题目一:在O(1)时间内删除链表节点. 给定单项链表的头指针和一个节点指针,定义一个函数在O(1)时间内删除该节点. 思路:(1)如果要删除的节点不是链表的尾节点,则将被删除节点的内容复制到该节点,然 ...
- 【校招面试 之 剑指offer】第16题 数值的整数次方
方法1:直接求解,但是要注意特殊情况的处理:即当指数为负,且底数为0的情况. #include<iostream> using namespace std; template<typ ...
- 【校招面试 之 剑指offer】第11题 旋转数组中的最小数字
题目:把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转.输入一个递增排序的数组的一个旋转,输出旋转数组的最小元素.例如: 数组{3,4,5,1,2}为{1,2,3,4,5}的一个旋转, ...
- 【校招面试 之 剑指offer】第10-3题 矩阵覆盖问题
题目:我们可以使用2✖️1的小矩形横着或者竖着去覆盖更大的矩形.请问用8个2✖️1的小矩形无重叠地覆盖一个2✖️8的大矩形,共有多少种方法? 分析:当放第一块时(假定从左边开始)可以横着放,也可以竖着 ...
- 【校招面试 之 剑指offer】第10-2题 青蛙跳台阶问题
题目1:一只青蛙一次可以跳上1级台阶,也可以跳上2级台阶.求该青蛙跳上一个n级台阶共有多少种跳法? 题目2:一只青蛙一次可以跳上1级台阶,也可以跳上2级台阶...也可以一次跳n级台阶.求该青蛙跳上一个 ...
- 【校招面试 之 剑指offer】第10-1题 斐波那契数列
递归以及非递归实现: #include<iostream> using namespace std; long long fun(long long n){ if(n == 0){ ret ...
- 剑指offer编程题Java实现——面试题7相关题用两个队列实现一个栈
剑指offer面试题7相关题目:用两个队列实现一个栈 解题思路:根据栈的先入后出和队列的先入先出的特点1.在push的时候,把元素向非空的队列内添加2.在pop的时候,把不为空的队列中的size()- ...
- 《剑指Offer》第20题(Java实现):定义栈的数据结构,请在该类型中实现一个能够得到栈中所含最小元素的min函数(时间复杂度应为O(1))。
一.题目描述 定义栈的数据结构,请在该类型中实现一个能够得到栈中所含最小元素的min函数(时间复杂度应为O(1)). 二.思路解析 首先定义一个Integer类型的栈,记为stack,此栈用来完成数据 ...
随机推荐
- CSS border-right-style属性设置元素的右边框样式
CSS border-right-style属性设置元素的右边框样式 边框的样式指的是边框的线条属性,指的是边框采用的是实线效果.短线效果还是其它的线条效果. border-right-style属性 ...
- 基于Linux的Samba开源共享解决方案测试(二)
单NAS网关50Mb码率视音频文件的稳定读测试结果如下: 50Mb/s负载性能记录 NAS网关资源占用 稳定读 稳定读 CPU空闲 内存空闲 网卡占用 13个稳定流 96.70% 10G 104MB/ ...
- js数组的初始化
方法一: var myarray = new Array(66,80,90,77,59); 方法二: var myarray = [66,80,90,77,59]; 方法三: var myarray= ...
- Where is virtualenvwrapper.sh after pip install?
I'm trying to setup virtualenvwrapper on OSX, and all the instructions and tutorials I've found te ...
- python urlretrieve 下载图片
python 3中urlretrieve方法直接将远程数据下载到本地.为什么不行? 55 import re import urllib.request def getHtml(url): page ...
- 任务计划程序-Windows2008定时重启
参考网站:https://www.cnblogs.com/yeyun/p/6209540.html Windows系统的任务计划程序,可以添加计划任务,设置任务开始时间及执行的间隔,实现应用的自动执行 ...
- Node NPM 的常用配置
1,修改 npm 下载模块的 保存地址 <1> 进入 cmd 运行, 如下命令 npm config set prefix "C:\Program File\NodeJs\p ...
- leetcode344
public class Solution { public string ReverseString(string s) { var list = s.Reverse(); StringBuilde ...
- Devexpress 百分号显示格式
百分号:{0:P}表示显示为百分号模式.如数据源中为0.5.表示出来为50%
- hashlib 加密模块使用说明
import hashlib #hashilib 模块 m = hashlib.md5() m.update('hello 天王盖地虎'.encode(encoding = 'utf-8)) m.h ...