1. 程式人生 > >算法:用兩個棧來實現一個隊列,完成隊列的Push和Pop操作。 隊列中的元素為int類型。《劍指offer》

算法:用兩個棧來實現一個隊列,完成隊列的Push和Pop操作。 隊列中的元素為int類型。《劍指offer》

pack 代碼 exception 隊列 imp scrip 入棧 return tro

算法:用兩個棧來實現一個隊列,完成隊列的Push和Pop操作。 隊列中的元素為int類型。《劍指offer》

利用棧來進行操作,代碼註釋寫的比較清楚:首先判斷兩個棧是否是空的:其次當棧二 為空,將棧1中取出來放到棧二,最終返回棧二首部值;

主要利用了pop()方法和push方法:

package LG.nowcoder;

/**
 * @Author liguo
 * @Description 用兩個棧來實現一個隊列,完成隊列的Push和Pop操作。 隊列中的元素為int類型。
 * @Data 2018-08-11 21:50
 */

import java.util.Stack;
public class Solution1 { Stack <Integer> stack1 = new Stack <Integer>(); Stack <Integer> stack2 = new Stack <Integer>(); public void push(int node) { stack1.push( node ); //直接入棧 } public int pop() {
if (stack1.empty() && stack2.empty()) { //判斷棧為空 throw new RuntimeException( "空的鏈表" ); } if (stack2.empty()) { //當第二個棧非空時,復制第一個棧到第二個棧 while (!stack1.empty()) { stack2.push( stack1.pop() ); } }
return stack2.pop(); //返回第二個棧頂 } }

算法:用兩個棧來實現一個隊列,完成隊列的Push和Pop操作。 隊列中的元素為int類型。《劍指offer》