重做简直offer(五)——用两个栈实现队列

重做简直offer(五)——用两个栈实现队列


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

分析:首先我们党的知识储备中必须要有栈和队列的概念,栈是一种先进后出的数据结构,队列是一种先进先出的数据结构,push是压入操作,也就是把数据(或元素)添加进栈或队列,pop可以理解为取出或抛出操作,就是将数据(或元素)从栈或者队列中取出(注意,取出后栈或队列中不再有该元素,可以理解为输出并删除)。题目中只要求完成push和pop两个操作,我们只需要利用两个栈的先进后出的特性去实现队列的先进先出的特性就OK了,两个栈可以分为存储数据的栈和将数据倒着输出的栈,push操作可以直接将数据push进存储栈中,如果要pop,将存储栈中的数据存放进另一个栈中,再直接取出就好。代码如下:

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

public int pop(){
	if(stack2.empty()){
		while(!stack1.empty()){
			stack2.push(stack1.pop());
		}
	}
	return stack2.pop();
}
}

知识点总结:本题主要利用了栈的的两个基本操作push和pop来实现队列的操作,另外,注意泛型的使用。

猜你喜欢

转载自blog.csdn.net/biandi9300/article/details/89306662