美文网首页算法
3.用2个栈实现队列

3.用2个栈实现队列

作者: 关guan关guan | 来源:发表于2018-04-09 18:53 被阅读0次

题目描述:用两个栈实现一个队列,实现对了的两个函数 appendTail 和 deleteHead,分别完成在队列尾插入结点和在队列头部删除结点的功能。
目的:体会下不同条件需要不同处理的妙处
代码:
package com.guanstudy;

import java.util.Stack;

/**

  • @date 2018年4月9日
  • @author junpu.guan
  • @param <T>
  • @Description: TODO

**/
public class Test<T> {

private Stack<T> stack1 = new Stack<T>();
private Stack<T> stack2 = new Stack<T>();

public void appendTail(T t) {
    stack1.push(t);
}

public T deleteHead() throws Exception {
    if (stack2.isEmpty()) {
        while (!stack1.isEmpty()) {
            stack2.push(stack1.pop());
        }
    }
    if (stack2.isEmpty()) {
        throw new Exception("队列为空,不能删除");
    }
    return stack2.pop();
}

public static void main(String args[]) throws Exception {
    Test<String> t7 = new Test<>();
    t7.appendTail("1");
    t7.appendTail("2");
    t7.appendTail("3");
    System.out.println(t7.deleteHead());
    t7.appendTail("4");
    System.out.println(t7.deleteHead());
    System.out.println(t7.deleteHead());
}

}

相关文章

  • 数据结构——栈和队列

    用数组实现栈和队列 用栈实现队列 用队列实现栈 栈和队列的经典算法题最小间距栈宠物收养所 数组实现栈和队列 用数组...

  • 总结的笔试/面试算法题

    目录 1. 栈和队列1.用两个队列实现栈2.用两个栈实现队列3.实现一个栈,可以用常数级时间找出栈中的最小值4.判...

  • leecode刷题(26)-- 用栈实现队列

    leecode刷题(26)-- 用栈实现队列 用栈实现队列 使用栈实现队列的下列操作: push(x) -- 将一...

  • C语言第七次作业:链表

    707. 设计链表 空指针 空节点 225. 用队列实现栈 链式存储栈 双队列实现栈 232. 用栈实现队列 链式...

  • 队列之-队列实现栈

    一、队列实现栈核心算法概述 之前已经描述过了用栈实现队列的功能,见栈系列之-实现队列,那么同样队列也可以用来实现栈...

  • 38_两个有趣的问题

    关键词:通过栈实现队列、通过队列实现栈 0. 通过栈实现队列 用栈实现队列等价于用后进先出的特性实现先进先出的特性...

  • 栈&队列

    一、栈&队列总结 栈/队列的应用接雨水验证栈序列滑动窗口的最大值 栈/队列的特殊实现用两个栈实现队列用两个队列实现...

  • 面试题9: 用两个栈实现队列

    9-1 用两个栈实现队列 9-2 用两个队列实现栈

  • LeetCode 每日一题 [12] 用队列实现栈

    LeetCode 用队列实现栈 [简单] 使用队列实现栈的下列操作: push(x) -- 元素 x 入栈pop(...

  • Python学习教程:用队列实现栈

    接着上一期跟大家说的用栈实现队列,这期的Python学习教程跟大家讲用队列实现栈 题目:使用队列实现栈的下列操作:...

网友评论

    本文标题:3.用2个栈实现队列

    本文链接:https://www.haomeiwen.com/subject/tdtwhftx.html