* 棧是一種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...