队列实现栈栈

队列实现栈

使用队列实现栈的下列操作:

push(x) – 元素 x 入栈
pop() – 移除栈顶元素
top() – 获取栈顶元素
empty() – 返回栈是否为空

思路:双队列实现:
压入
建两个空列
核心:(相当于翻转)
给一个值,压入a,再把b(尾删)的值压入(a头插)
交换 a b
输出b列 b实际值(存储顺序) 与输入的相反

	输入  1 2 3 4   b: 1234
压出:队列输出
	尾删
	输出: 4 3 2 1

class MyStack1{
private Queue a;
private Queue b;
public MyStack1(){
a = new LinkedList<>();
b = new LinkedList<>();
}
public void push(int x ){
a.offer(x);
while (!b.isEmpty()){
a.offer(b.poll());
}
Queue tmp = b;
b = a;
a = tmp;
}
public int pop(){
return b.poll();
}
public int top(){
return b.peek();
}
public boolean empty(){
return b.isEmpty();
}
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值