劍指offer 8 用兩個棧實現佇列

2021-10-23 01:36:35 字數 654 閱讀 1613

示例 1:

輸入:[,[3],,]

輸出:[null,null,3,-1]

th:用兩個棧,乙個棧push資料 另乙個棧pop資料

輸入資料 1 2 3 push進instack 為 3 2 1 在pop到outstack棧中 為1 2 3 和輸入資料順序一樣、

時間複雜度:o(1) 一次push操作

空間複雜度:o(1) 乙個儲存空間

時間複雜度:o(n) 資料從instack到outstack棧 loop一次。

空間複雜度:o(n)

/*

* 用兩個棧,乙個棧push資料 另乙個棧pop資料

輸入資料 1 2 3 push進instack 為 3 2 1 在pop到outstack棧中 為1 2 3 和輸入資料順序一樣、

*/stack

in;stack

out;

public

cqueue()

public

void

(int value)

public

intdeletehead()

}if(out.

empty()

)return out.

pop();

}

劍指offer 8 兩個棧實現佇列

用兩個棧來實現乙個佇列,完成佇列的push和pop操作。佇列中的元素為int型別。解題思路 兩個棧,乙個棧用於儲存資料 入棧 instack,另乙個棧用於彈出資料 出棧 outstack,入佇列則將資料儲存到instack棧中,出佇列的話,先判斷outstack棧中是否有資料,有的話直接出棧即可,若...

劍指offer 用兩個棧實現佇列

華電北風吹 天津大學認知計算與應用重點實驗室 日期 2015 9 30 題目描述 用兩個棧來實現乙個佇列,完成佇列的push和pop操作。佇列中的元素為int型別。解析 我的思路是用乙個棧來儲存資料,入隊的話直接在這個棧上入棧,出隊的話借助輔助棧,對輔助棧入棧,然後取出頭元素,然後把輔助棧上的元素在...

用兩個棧實現佇列《劍指offer

題目描述 用兩個棧來實現乙個佇列,完成佇列的push和pop操作。佇列中的元素為int型別。解題思路 將元素入隊時壓入乙個棧中,隨後通過另乙個棧出隊 1 使用stack容器定義兩個棧 stack stack1 stack stack2 2 入隊 stack1.push node node為入隊元素 ...