es6 佇列 1 用兩個棧實現佇列 簡單

2021-10-13 21:59:39 字數 1056 閱讀 2406

* 棧是一種lifo(last-in-first-out,後進先出)的資料結構

* 也就是最新新增的項最早被移除

* 而棧中項的插入(叫做推入)和移除(叫做彈出),只發生在乙個位置——棧的頂部

*//**

* 佇列資料結構的訪問規則是fifo(fist-in-first-out,先進先出)

* 佇列在列表的末端新增項,從列表的前端移除項

*/var cqueue = function() ;

/**

* @param value

* @return

*/ // 直接放到入的棧裡面

this.instack.push(value);

};/**

* @return

* push()方法可以接收任意數量的引數,把它們逐個新增到陣列的末尾,並返回修改後陣列的長度

* * pop()方法刪除陣列的最後乙個元素,把陣列的長度減1,並且返回它被刪除元素的值

* 如果陣列變為空,則該方法不改變陣列,返回undefined值

*/cqueue.prototype.deletehead = function() = this;

// 判斷出的棧,是否有元素,沒有元素就從入的棧取出一位,放到出的棧裡面

if (!outstack.length)

}// 這裡使用短路寫法,直接操作出的棧

// 出的棧沒有元素吐出來,那就只能返回-1

return outstack.pop() || -1;

};/**

* your cqueue object will be instantiated and called as such:

* var obj = new cqueue()

* var param_2 = obj.deletehead()

*/已完成 執行用時: 76 ms

用兩個棧實現佇列 用兩個佇列實現棧

劍指offer 面試題7 用兩個棧實現佇列。templateclass cqueue 我們試著用兩個棧來模擬佇列的操作,發現如下可行操作 完整 實現 面試題7 用兩個棧實現佇列 分別完成在隊尾插入結點和在隊頭刪除結點的功能。date 2014 06 27 include include includ...

(1)用兩個棧實現佇列和(2)用兩個佇列實現棧

很經典的乙個演算法題,既考察了棧的性質,又考察了佇列的性質。我們可以定乙個stack1,stack2.入棧的時候直接入到stack1,當出棧的時候,先判斷stack2是否為空,為空的話,把stack1順序出棧壓入stack2.然後把stack2棧頂元素彈出。同理取front元素的時候也一樣。empt...

用佇列實現棧 用兩個棧實現佇列

用兩個棧來實現乙個佇列,完成佇列的push和pop操作。佇列中的元素為int型別。var cqueue function param value return this.stacka.push value return cqueue.prototype.deletehead function els...