這篇文章跟大家分享的是關於js中利用兩個堆疊實作佇列的演算法,內容很不錯,有需要的朋友可以參考一下,希望可以幫助到大家。
用兩個堆疊來實作一個佇列,完成佇列的Push和Pop運算。佇列中的元素為int型別。
兩個堆疊實作佇列,那就是一個進一個出,且題中沒說兩個堆疊的長度限制,那麼對於兩個堆疊s1和s2來說,有兩個注意的點:
s1.push時,若s2不為空且s1為空,為了保證正確的順序,則將s2的元素全返入s1,然後再s1.push
s2.pop時,若s2為空且s1不為空,為了保證正確的順序,則將s1的元素全放入s2,再s2.pop
var s1 = [], s2 = []; function transferStack(a, b) { while(a.length !== 0){ b.push(a.pop()); } } function push(val) { if(s1.length === 0 && s2.length !== 0){ transferStack(s2, s1); } s1.push(val); } function pop(){ if(s1.length !== 0 && s2.length === 0){ transferStack(s1, s2); } return s2.pop(); }
相關推薦:
以上是js中利用兩個堆疊實作佇列的演算法的詳細內容。更多資訊請關注PHP中文網其他相關文章!