java 用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型。

本文介绍了一种使用两个栈来实现队列的数据结构方法。通过将入队操作映射为向第一个栈压入元素,出队操作则需将第一个栈的所有元素转移到第二个栈后再弹出顶部元素的方式,实现了队列的基本功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

思路:有两个栈,栈1和栈2.当入栈的时候,我们将它全放进栈1中,当需要出栈的时候,我们将栈1出栈到栈2中,然后再将栈2依次出栈。出完栈之后,再把stack2中的数pop出push到stack1,接受下次的操作。所以入栈的时候,思路很简单,注意到要将int类型转为Integer类型,我们使用了new Integer(int);当需要出栈的时候,我们用API提供的方法while(stack1.isEmpty())来将所有栈1的元素压入栈2中,然后将栈2弹出就可以。这里又涉及到将Integer的类型转为int类型的方法Integer.intValue();
import java.util.Stack;

public class Solution {
    Stack<Integer> stack1 = new Stack<Integer>();
    Stack<Integer> stack2 = new Stack<Integer>();
    
    public void push(int node) {
		stack1.push(new Integer(node));

	}

	public int pop() {
		int pop;
		while (!stack1.isEmpty()) {
			stack2.push(stack1.pop());
		}
		pop=stack2.pop().intValue();
		while(!stack2.isEmpty()){
			stack1.push(stack2.pop());
		}
		return pop;
	}
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值