LeetCode OJ:Implement Stack using Queues(队列实现栈)
Implement the following operations of a stack using queues.
- push(x) -- Push element x onto stack.
- pop() -- Removes the element on top of the stack.
- top() -- Get the top element.
- empty() -- Return whether the stack is empty.
Notes:
- You must use only standard operations of a queue -- which means only push to back,peek/pop from front,size, andis emptyoperations are valid.
- Depending on your language, queue may not be supported natively. You may simulate a queue by using a list or deque (double-ended queue), as long as you use only standard operations of a queue.
- You may assume that all operations are valid (for example, no pop or top operations will be called on an empty stack)
类似上一题的两个栈实现队列,但是有点不同,具体的见下面的注释:
 class Stack {
 public:
     // Push element x onto stack.
     void push(int x) {
         q1.push(x);
     }
     // Removes the element on top of the stack.
     void pop() {
         int tmp = q1.front();//注意这里的实现和双栈实现队列的方式是不相同的
         q1.pop();
         while(!q1.empty()){
             q2.push(tmp);
             tmp = q1.front();
             q1.pop();
         }
         swap(q1,q2);
     }
     // Get the top element.
     int top() {
         int tmp = q1.front();
         q1.pop();
         while(!q1.empty()){
             q2.push(tmp);
             tmp = q1.front();
             q1.pop();
         }
         q2.push(tmp);
         swap(q1, q2);//用swap即可,无须再向上次那样再倒回去
         return tmp;
     }
     // Return whether the stack is empty.
     bool empty() {
         return q1.empty();
     }
 private:
     queue<int> q1;
     queue<int> q2;
 };
LeetCode OJ:Implement Stack using Queues(队列实现栈)的更多相关文章
- 225 Implement Stack using Queues 队列实现栈
		Implement the following operations of a stack using queues. push(x) -- Push element x onto stack.pop ... 
- LeetCode 225 Implement Stack using Queues(用队列来实现栈)(*)
		翻译 用队列来实现栈的例如以下操作. push(x) -- 将元素x加入进栈 pop() -- 从栈顶移除元素 top() -- 返回栈顶元素 empty() -- 返回栈是否为空 注意: 你必须使用 ... 
- leetcode:Implement Stack using Queues  与    Implement Queue using Stacks
		一.Implement Stack using Queues Implement the following operations of a stack using queues. push(x) - ... 
- [LeetCode] 225. Implement Stack using Queues 用队列来实现栈
		Implement the following operations of a stack using queues. push(x) -- Push element x onto stack. po ... 
- LeetCode 225 Implement Stack using Queues  用队列实现栈
		1.两个队列实现,始终保持一个队列为空即可 class MyStack { public: /** Initialize your data structure here. */ MyStack() ... 
- (easy)LeetCode  225.Implement Stack using Queues
		Implement the following operations of a stack using queues. push(x) -- Push element x onto stack. po ... 
- LeetCode(36)- Implement Stack using Queues
		题目: Implement the following operations of a stack using queues. push(x) -- Push element x onto stack ... 
- Java for LeetCode 225 Implement Stack using Queues
		Implement the following operations of a stack using queues. push(x) -- Push element x onto stack. po ... 
- Leetcode 225 Implement Stack using Queues
		Implement the following operations of a stack using queues. push(x) -- Push element x onto stack. po ... 
- Java [Leetcode 225]Implement Stack using Queues
		题目描述: Implement the following operations of a stack using queues. push(x) -- Push element x onto sta ... 
随机推荐
- Linux下编程学习一
			本篇主要记录一些在学习LINUX下编程时,, C和C++语言的一些基础的常识, 一. 函数指针 void MyFun(int x); 函数声明 void (*FunP)(int ); 函数指针声明 下 ... 
- Java序列化的机制和原理 转
			转 http://developer.51cto.com/art/200908/147650.htm Java序列化的机制和原理 本文讲解了Java序列化的机制和原理.从文中你可以了解如何序列化一个对 ... 
- [.net基础]访问修饰符
			标题:[.net基础]访问修饰符 一.前言 基础掌握不牢固啊,所以记录下来. 二.方法访问修饰符Internal (1).创建工程ParentAndSon (2).添加类ModelA namespac ... 
- centos7安装kvm环境采用网桥模式并创建虚拟机制作openstack需要的镜像
			初始环境的安装:centos7 mini iso镜像进行安装的系统 采用的环境是vm该软件,联网方式NAT模式下配置的静态ip(如何在NAT模式下配置静态ip参考之前的文章) 1.由于要安装kvm环境 ... 
- 20145216史婧瑶《Java程序设计》第7周学习总结
			20145216 <Java程序设计>第7周学习总结 教材学习内容总结 第十三章 时间与日期 13.1 认识时间与日期 就目前来说,即使标注为GMT(无论是文件说明,或者是API的日期时间 ... 
- angularjs中的jqlite的认识理解及操作使用
			刚了解angularjs时,就知道它有个内嵌的轻量级的jquery:jqLite,那时候常于jQuery分不清,其实它们是不一样的.jqLite中,通过angular.element(param)获得 ... 
- vROPS中获取虚拟机在VC中的UUID
			vROPS中虚拟机对象的ID为resourceID,跟vCenter中虚拟机的UUID是不一致的,因此想要将vROPS中的虚拟机和vCenter中的虚拟机对应肯定不能靠虚拟机名称,而是一定要靠UUID ... 
- uboot下如何查看内存里的数据
			答:使用md工具 md.b $address $count (从地址$address处显示$count个字节的数据,b=byte,8位) md.w $address $count (从地址$addre ... 
- .Net Core Linux部署之进程守护 Supervisor 安装配置
			1.Supervisor 安装 //安装easy_install yum install python-setuptools //安装Supervisor easy_install superviso ... 
- JVM 内存调优 与 实际案例
			堆内存设置 原理 JVM堆内存分为2块:Permanent Space 和 Heap Space. Permanent 即 持久代(Permanent Generation),主要存放的是Java类定 ... 
