3.用2个栈实现队列

题目描述:用两个栈实现一个队列,实现对了的两个函数 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());
}

}

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,991评论 19 139
  • RPC框架远程调用的实现方式在原理上是比较简单的,即将调用的方法(接口名、方法名、参数类型、参数)序列化之后发送到...
    谜碌小孩阅读 3,168评论 0 13
  • 冈仁波齐,终于看到你了。 米拉山,我曾经走过的地方。 那里的欢乐留在了记忆里。 快到布达拉宫了,这里的风,这里的水...
    马上做阅读 162评论 0 0
  • 春节摄影系列 | 献给所有春节还在街头工作的你们。 老裁缝奶奶 停车门岗阿姨 卖腌水果的老奶奶 环卫工人 小餐馆老...
    极浦阅读 140评论 2 1
  • 望月怀远 张九齢(唐代) 海上升明月,天涯共此时。 情人怨遥夜,竟夕起相思。 灭烛怜光满,披衣觉露滋。 不堪盈手赠...
    qiushui__lianli阅读 59评论 0 0