問題用兩個棧來實現乙個佇列,完成佇列的push和pop操作。 佇列中的元素為int型別。
解決思路
兩個棧。出棧的時候,如果棧2不為空,就出棧2。如果棧2為空,就把棧1的出棧再入棧2。
實現**
$arr1 = array();
$arr2 = array();
function mypush($node)
array_push($arr1,$node);
function mypop()
if(!empty($arr2))else{
while(!empty($arr1)){
array_push($arr2, array_pop($arr1));
return array_pop($arr2);
使用兩個佇列實現棧
參考文章 棧和佇列都是用來儲存資料的,無論底層是使用陣列還是鍊錶來實現,其基本原理是不變的,那就是棧的特點的先進後出,佇列的特點是先進先出。size enqueue dequeue peek 使用佇列來實現棧 使用佇列來實現棧的方式其實和通過棧實現佇列的方式差不多。用以上方法也是可以的。但是,為了讓...
使用兩個棧實現乙個佇列 使用兩個佇列實現乙個棧
棧的特點是先進後出 佇列的特點是先進先出 用兩個棧實現乙個佇列,必須保證它先進先出 入棧和如佇列沒什麼區別,區別就在出棧和出佇列 用兩個棧實現乙個佇列,入佇列時可以將全部資料壓入空棧s1,然後將棧s1的全部元素壓入棧s2,此時s2的棧頂元素要出佇列的元素了。include template clas...
棧佇列 使用兩個棧實現乙個佇列
棧佇列 使用兩個棧實現乙個佇列 思路 1.入佇列,是將資料放入棧1 2.出佇列,是將棧1資料出棧後依次存入棧2,然後棧2進行出棧 這樣就模擬了佇列的 先進先出 思想1.stack.h pragma once include include include 棧實現 typedef int sdatat...