`
cdwzwd
  • 浏览: 121756 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类

使用两个栈实现队列功能

阅读更多

主要思想:
将元素分为两部分啊,b。a作为入栈,b作为出栈。
1、将所有元素入栈
2、当出栈为空时,将a中元素转移到b中。


代码

import java.util.Stack;

public class MyQueue<T> {

	private Stack<T> stackIn = new Stack<T>();  //提供入栈
	private Stack<T> stackOut = new Stack<T>();  //提供出栈
	public void enQueue(T element){
		stackIn.push(element);
	}
	
	private void shift(){
		while(!stackIn.isEmpty()){
			stackOut.push(stackIn.pop());
		}
	}
	public T deQueue(){
		if(stackOut.isEmpty()) 
			shift();
        if(! stackOut.isEmpty()){
        	return stackOut.pop();
        }
        else return null;
	}
	
	public static void main(String[] args){
		MyQueue myList = new MyQueue<String>();
		myList.enQueue("abc");
		myList.enQueue("def");
		myList.enQueue("r");
		myList.enQueue("s");
		myList.enQueue("t");
		myList.enQueue("u");
		System.out.print(myList.deQueue());
		System.out.print(myList.deQueue());
		System.out.print(myList.deQueue());		
		System.out.print(myList.deQueue());
		myList.enQueue("y");
		myList.enQueue("hjj");
		System.out.print(myList.deQueue());
	}
}
0
0
分享到:
评论

相关推荐

    PHP使用两个栈实现队列功能的方法

    本文实例讲述了PHP使用两个栈实现队列功能的方法。分享给大家供大家参考,具体如下: 问题 用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型。 解决思路 两个栈。出栈的时候,如果栈2不为...

    C语言用两个栈实现一个队列的功能

    用量个栈实现一个队列,使其可以有进队和出队的操作。

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

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

    用两个栈实现一个队列的功能

    //用两个栈实现一个队列的功能 //栈s1提供入队列的功能,栈s2提供出队列的功能 //入队列:如s1 //出队列:(1)如果s2不为空,则直接弹出栈s2的数据(2)如果栈s2为空,则依次弹出栈s1的数据,放入s2中,再弹出栈s2的...

    用两个栈实现队列1

    队列的声明如下,请实现它的两个函数 appendTail 和deleteHead ,分别完成在队列尾部插入整数和在队列头部删除整数的功能。(若队列中没有元示例:

    剑指offer刷题记录之用两个栈实现队列

    用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型。 2. 解题思路 2.1 分析 栈:先进后出 队列:先进先出 要求用两个栈{stack1,stack2}实现一个队列,也就是说我们需要使用栈的push和pop...

    栈、队列实现魔王语言转换(编程实例)

    有一个魔王总是使用自己的一种非常精练面抽象的语言讲话,没有人能听得慌,... 设计一个魔王语言转换系统,利用栈、队列实现相应的语言转换功能,程序可实现相应效果,同时可以进一步学习数据结构中的栈和队列操作过程。

    Python《剑指offer》算法实现-用两个栈实现队列

    # Python实现《剑指offer》 部分代码自己添加了一些测试用例, 或者自己添加了一些功能 1. 初级程序员注重算法和数据结构 2. 事先做好准备,对工作有热情 3. 面试过程放松。不要急于写代码,了解清楚所要解决的问题,...

    C/C++之用两个栈实现一个队列的功能

    问题:有两个栈s1和s2,实现队列的push和pop功能。  一般思路:始终维护s1作为存储空间,并以s2作为临时缓冲区。s1实现入队操作,s2实现出队操作。  1,入队时,将元素压入s1。  2,出队时,将s1的元素逐个...

    (剑指offer)面试题09. 用两个栈实现队列

    用两个栈实现一个队列。队列的声明如下,请实现它的两个函数 appendTail 和 deleteHead ,分别完成在队列尾部插入整数和在队列头部删除整数的功能。(若队列中没有元素,deleteHead 操作返回 -1 ) 思路 根据栈的特性...

    数据结构-用双端队列实现栈

    用双端队列(deque)实现栈的功能, 数据结构作业 栈(先进后出)的一种数据结构 内含一个cpp文件和两个头文件。

    Python《剑指offer》算法实现-用两个队列实现栈

    # Python实现《剑指offer》 部分代码自己添加了一些测试用例, 或者自己添加了一些功能 1. 初级程序员注重算法和数据结构 2. 事先做好准备,对工作有热情 3. 面试过程放松。不要急于写代码,了解清楚所要解决的问题,...

    c++数据结构-实验.zip

    2)设计一个线性表,分别用顺序存储结构和链式存储结构实现,完成线性表的构造、查找、插入、删除、输出等基本操作。 3)掌握两种存储结构的优缺点以及在实际应用中如何选择存储方式。 4)选作:约瑟夫环的顺序存储...

    数据结构和算法必知必会的50个代码实现

    ## 栈* 用数组实现一个顺序栈* 用链表实现一个链式栈* 编程模拟实现一个浏览器的前进、后退功能 ## 队列* 用数组实现一个顺序队列* 用链表实现一个链式队列* 实现一个循环队列 ## 递归* 编程实现斐波那契数列求值f(n...

    停车场管理系统的设计与实现

    这是一个基于C/C++的停车场管理系统,主要包括 ...停车场分为左右两侧共10个车位,这两侧分别用两个栈来表示,如果这10个车位全停满,后来的汽车进入便道等待,如果停车场内有车离开,便道上的第一辆车进入该车位。

    PHP基于数组实现的堆栈和队列功能示例

    本文实例讲述了PHP基于数组实现的堆栈和队列功能。分享给大家供大家参考,具体如下: 堆栈和队列是数据结构的两种实现形式,是使用非常广泛的存储数据的容器。下面呢,就分别讲下这两种容器在PHP中的应用: 一、使用...

    数据结构课程设计 四题

     (1) 两个栈共享空间,思考应开辟数组的空间是多少?  (2) 汽车可有不同种类,则它们的占地面积不同,收费标准也不同,如1辆客车和1.5辆小汽车的占地面积相同,1辆十轮卡车占地面积相当于3辆小汽车的占地面积...

    lwip轻量级协议栈源码,已移植成功

    具体实现时,对队列本身的管理利用μC/OS自己的OSQ操作完成,然后使用μC/OS中的内存管理模块实现对消息的创建、使用、删除和回收,两部分综合起来形成了LwIP的消息队列功能。  (3) 定时器函数  LwIP中每个和TCP/...

    StructuresandAlgorithms-Code:重温数据结构与算法,代码实践

    栈实现队列、队列实现栈 双端队列-返回滑动窗口的最大值 小顶堆-返回数据流的第k大元素 leetcode建议练习题号: 业界应用 如何实现浏览器的前进后退功能 hash 散列表即键值对的集合,js里常用{ }、new Map()表示 知识...

Global site tag (gtag.js) - Google Analytics