算法练习五:用两个栈实现队列

原创 2015年11月19日 20:13:55
#include<iostream>
#include<stack>
using namespace std;
/*用两个栈来实现一个队列,完成队列的Push和Pop操作。
队列中的元素为int类型。
思路:入栈两次在出去即为队列顺序,将stack2作为出队操作,一旦stack2
为空,将stack1中的内容全部入到stack2中,这是为了保证所有元素出队顺序不变*/
stack<int> stack1;
stack<int> stack2;
void push(int node) 
{
	stack1.push(node);    
}
int pop() 
{
	if(stack2.empty())
	{
		while(!stack1.empty())
		{
			stack2.push(stack1.top());
			stack1.pop();
		}
	}
	int res = stack2.top();
	stack2.pop();
	return res;
}


用两个栈实现队列 与 用两个队列实现栈

class Solution { public: void push(int node) { stack1.push(node); } int pop() { ...
  • STILLxjy
  • STILLxjy
  • 2016年09月19日 20:39
  • 551

Python :用两个栈实现队列

牛客网上的剑指 offer的在线编程: 题目描述 用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型。 # -*- coding:utf-8 -*- class...
  • Lynette_bb
  • Lynette_bb
  • 2017年07月13日 21:17
  • 732

两个栈实现队列+两个队列实现栈----java

两个栈实现队列+两个队列实现栈----java 一.两个栈实现一个队列 思路:所有元素进stack1,然后全部出stack1并进入stack2.实现队列的先进先出即:若stack2非空,我们需要的恰好...
  • u010093630
  • u010093630
  • 2014年08月08日 00:52
  • 10060

C++算法之 两个队列实现一个栈

题目:用两个队列实现一个栈 算法思路: 现有两个队列q1与q2,入栈:如果q1与q2都为空,那么我们选择q1入栈也就是入队列,比如q1入栈 1 2 3 4 ;现在要出栈,后进先出那么4要出栈。但是...
  • djb100316878
  • djb100316878
  • 2014年12月09日 10:48
  • 9883

栈和队列面试题(三)---用两个队列实现一个栈

一:queue是一种”先进先出”的数据结构,他在对尾插入元素,在队头删除元素,他既可以取到自己的队头元素,也可以取到自己的队尾元素; stack是一种”先进后出”的数据结构,他对元素的插入...
  • gogogo_sky
  • gogogo_sky
  • 2017年04月16日 00:48
  • 299

两个栈实现一个队列,两个队列实现一个栈

问题1:用两个栈实现一个队列,实现队列的push和delete操作 栈的特性是先进后出(FILO),队列的特性是先进先出(FIFO),在实现delete时,我们的难点是如何将栈中最底层的数据拿出来,...
  • zw_1510
  • zw_1510
  • 2016年07月17日 00:32
  • 4108

c语言俩个栈实现一个队列

思路,现在设有俩个栈s1,s2。完成一个队列。      入队时,数据进入栈s1。出队时检查s2栈是否为空,为空则将s1出栈,出栈数据一次入栈s2。完成一个s1全部出栈后,s2出栈既是此时的出队操作...
  • u010916862
  • u010916862
  • 2017年04月19日 20:34
  • 587

【数据结构】(面试题)使用两个栈实现一个队列(详细介绍)

使用两个栈实现一个队列思路一:我们设定s1是入栈的,s2是出栈的。入队列,直接压到s1即可出队列,先把s1中的元素倒入到s2中,弹出s2中的栈顶元素;再把s2的剩余元素全部倒回s1中。650) thi...
  • hanjing_1995
  • hanjing_1995
  • 2016年05月30日 17:18
  • 1177

用两个栈实现一个队列的功能?要求给出算法和思路!

用两个栈实现一个队列的功能?要求给出算法和思路! 堆栈的特征:FILO 先进后出 队列的特征:FIFO 先进先出 所以,用两个栈s1和s2模拟一个队列时,s1作输入栈,逐个元素压栈,以此...
  • zhuimengzh
  • zhuimengzh
  • 2011年08月25日 20:47
  • 3967

用两个队列模拟一个栈

用两种方法实现了用两个队列模拟一个栈的操作。一种的入栈时间复杂度为O(1),出栈O(n),一种入栈O(n),出栈O(1)。 并且附有源代码方便今后阅读和与大家交流。...
  • yin1203014
  • yin1203014
  • 2015年07月25日 23:23
  • 1533
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:算法练习五:用两个栈实现队列
举报原因:
原因补充:

(最多只允许输入30个字)