您的位置:首页 > 职场人生

剑指offer面试题7:用两个栈实现队列

2019-08-09 15:08 756 查看

用两个栈实现一个队列。队列的声明如下,请实现它的两个函数appendTail 和deleteHead,分别完成在队列尾部插入结点和在队列头部删除结点的功能。

import java.util.Stack;

/**
Stack.peek()与Stack.pop()
peek():返回栈顶的值 ;不改变栈的值,查看栈顶的对象而不移除它。
pop():返回栈顶的值 ;会把栈顶的值删除。
poll():Queue(队列)的一个方法,获取并移除此队列的头,如果此队列为空,则返回null。
offer():队列的方法,往队尾插入元素。
*/
public class Main5 {
public static class Mlist<T>{
//插入栈
Stack<T> stack1 = new Stack<>();
//输出栈
Stack<T> stack2 = new Stack<>();
public void appendTail(T t){
stack1.add(t);
}
public T deleteHead(T t){
if(stack2.isEmpty()){
while(!stack1.isEmpty()){
stack2.add(stack1.pop());
}
}
if(stack2.isEmpty()){
throw new RuntimeException("没有数据");
}
return stack2.pop();
}
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: