剑指Offer05 用栈模拟队列
添加了模板类应用
/*************************************************************************
> File Name: 05_StackMakeQueue.cpp
> Author: Juntaran
> Mail: JuntaranMail@gmail.com
> Created Time: 2016年08月29日 星期一 19时32分12秒
************************************************************************/ #include <stdio.h>
#include <bits/stdc++.h> using namespace std; template<class T>
class qStack
{
private:
stack<T> stack1;
stack<T> stack2;
int size; public:
qStack()
{
size = ;
}
void push(T &node)
{
stack1.push(node);
size = stack1.size();
}
T pop()
{
assert(this->size > );
T ret = ;
if (this->size == )
{
ret = stack1.top();
stack1.pop();
this->size = ;
return ret;
}
if (this->size > )
{
while (stack1.size())
{
stack2.push(stack1.top());
stack1.pop();
}
ret = stack2.top();
stack2.pop(); while (stack2.size())
{
stack1.push(stack2.top());
stack2.pop();
}
this->size --;
return ret;
}
}
}; int main()
{
qStack<int> quque;
for (int i = ; i < ; i++)
{
cout << i << " push" << endl;
quque.push(i);
}
for (int i = ; i < ; i++)
{
cout << quque.pop() << " pop" << endl;
}
for (int i = ; i < ; i++)
{
cout << i << " push" << endl;
quque.push(i);
}
for (int i = ; i < ; i++)
{
cout << quque.pop() << " pop" << endl;
}
cout << endl;
}
剑指Offer05 用栈模拟队列的更多相关文章
- (5)剑指Offer之栈变队列和栈的压入、弹出序列
一 用两个栈实现队列 题目描述: 用两个栈来实现一个队列,完成队列的Push和Pop操作. 队列中的元素为int类型. 问题分析: 先来回顾一下栈和队列的基本特点: 栈:后进先出(LIFO) 队列: ...
- 剑指offer 5.栈和队列 用两个栈实现队列
题目描述 用两个栈来实现一个队列,完成队列的Push和Pop操作. 队列中的元素为int类型. 解题思路:1,整体思路是元素先依次进入栈1,再从栈1依次弹出到栈2,然后弹出栈2顶部的元素,整个过程 ...
- (原)剑指offer之栈和队列
题目描述 用两个栈来实现一个队列,完成队列的Push和Pop操作. 队列中的元素为int类型. 设两个栈为stack1,stack2: 1:首先想到最简单的方法:是入栈时将数据压入stack1,出栈时 ...
- 剑指Offer9——使用双栈模拟队列
剑指Offer9--使用双栈模拟队列 队列Queue是具有FIFO(First in First out)特性的数据结构,栈Stack是具有LIFO(后进先出)特性的数据结构.下面提供一种思路使用双栈 ...
- 【剑指Offer】栈的压入、弹出队列 解题报告(Python)
[剑指Offer]栈的压入.弹出队列 解题报告(Python) 标签(空格分隔): 剑指Offer 题目地址:https://www.nowcoder.com/ta/coding-interviews ...
- 《剑指offer》栈的插入弹出序列
本题来自<剑指offer> 栈的插入弹出序列 题目: 输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否可能为该栈的弹出顺序.假设压入栈的所有数字均不相等.例如序列1,2, ...
- 剑指Offer:栈的压入、弹出序列【31】
剑指Offer:栈的压入.弹出序列[31] 题目描述 输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否为该栈的弹出顺序.假设压入栈的所有数字均不相等.例如序列1,2,3,4,5是某栈 ...
- 剑指 Offer 31. 栈的压入、弹出序列 + 入栈顺序和出栈顺序的匹配问题
剑指 Offer 31. 栈的压入.弹出序列 Offer_31 题目详情: 解析: 这里需要使用一个栈来模仿入栈操作. package com.walegarrett.offer; /** * @Au ...
- 剑指 Offer 31. 栈的压入、弹出序列
剑指 Offer 31. 栈的压入.弹出序列 输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否为该栈的弹出顺序.假设压入栈的所有数字均不相等.例如,序列 {1,2,3,4,5} 是某 ...
随机推荐
- Minus-C 一个最小化的C语言规范
资深C++程序员都不会对C++编程规范太陌生,C++实在太复杂,以至于所有项目都需要裁剪一个子集共项目组内使用.经过在家休息这一小段时间,我发现其实C语言更需要一个相同的规范,这就是本文的目标,最大可 ...
- 基于TF/IDF的聚类算法原理
一.TF/IDF描述单个term与特定document的相关性TF(Term Frequency): 表示一个term与某个document的相关性. 公式为这个term在document中出 ...
- JPBM4.4基础及数据库说明
JPBM4.4基础及数据库说明 对jBPM4.4数据库的几张表简单介绍: A.资源库和运行时表结构 JBPM4_DEPLOYMENT 流程定义表 ...
- RocketMQ在Windows平台下环境搭建
一. 环境搭建 需要jdk1.6(以上) 64bit, maven, eclipse 二. RocketMQ项目下载 项目地址:https://github.com/alibaba/RocketM ...
- 负载均衡SESSION同步总结
1.redis/分布式文件存储系统/数据库 存储session,解决负载均衡集群中session不一致问题 http://www.cnblogs.com/painsOnline/p/5194851.h ...
- 使用U盘安装Ubuntu系统的实践小结
参考教程:http://diybbs.zol.com.cn/1/33925_1942.html 遇到的问题:安装ubuntu 12.04 64位,提示缺少“/casper/vmlinuz.efi ...
- STM32 使用 printf 发送数据配置方法 -- 串口 UART, JTAG SWO, JLINK RTT
STM32串口通信中使用printf发送数据配置方法(开发环境 Keil RVMDK) http://home.eeworld.com.cn/my/space-uid-338727-blogid-47 ...
- CSS Gradient文字效果
你想创建的标题没有渲染和Photoshop每个标题吗?这里是一个简单的CSS技巧向您展示如何创建渐变文字效果,PNG图像(纯CSS,没有Javascript或Flash).你所需要的是一个空的< ...
- c# 轻量级ORM框架 之 WhereHelper (二)
上篇文章发布了一些设计orm框架基层的和实现,有朋友提出WhereHelper是亮点,能被认可我表示高兴. 我就把WhereHelper设计思想和代码公开下. WhereHelper 的概念就是再拼接 ...
- win8 企业版 安装 .net2.0 .net 3.5
Windows 8 默认集成 .Net Framework 4.5,因此运行一些基于3.5或以前版本的程序时会弹出这个提示. 2012-3-2 15:24 上传 下载附件 (23.91 KB) 这 ...