演算法題 7 用棧實現佇列

2022-01-17 08:50:12 字數 424 閱讀 3292

用棧來實現佇列,完成佇列的push和pop操作。

佇列是先進先出,棧是先進後出,我們需要兩個棧,in棧用來處理入棧(push)操作,out棧用來處理出棧(pop)操作。乙個元素進入in棧以後,出棧的順序被反轉。當元素要出棧時,

需要先進入out棧,此時元素出棧的順序再一次被反轉,因此出棧順序和最開始入棧順序是相同的,先進入的元素先退出,這就是佇列的順序。

stackin = new stack();

stackout = new stack();

public void push(int element)

public int pop() throws exception

}if (out.empty())

return out.pop();

}

用棧實現佇列 用佇列實現棧

棧的特點 filo firstinlastout 僅能從棧頂插入,刪除元素。最基本的介面包括push 從棧頂壓入元素 pop 從棧頂彈出元素 佇列的特點 fifo firstinfirstout 僅能從隊頭刪除元素,從隊尾插入元素。最基本的介面包括enque 從隊尾插入元素 deque 從隊頭刪除元...

演算法題 用兩個棧實現佇列

用兩個棧實現佇列 用兩個棧來實現乙個佇列,完成佇列的push和pop操作。佇列中的元素為int型別。思路 1.stack是先進後出,而佇列是先進先出。2.stack1用於插入,運用另乙個stack2插入從stack1中彈出的資料後,資料的順序就會反轉。stack integer stack1 new...

用棧實現佇列,用佇列實現棧。好玩!!!

因為在資料結構中,棧和佇列長得實在是太像了,將他們拿來比較是不可避免的,棧 後進先出,而佇列 先進先出。同樣是只能在一端進行操作,那麼問題來了,能相互實現?能不能得好好分析一下嘛,如果是用兩個棧來實現佇列,好像這操作可以哦。一下,你就明白!顯然用兩個棧可以實現佇列的功能,就是借助另乙個棧來中轉一下,...