1. 程式人生 > >用兩個棧實現隊列 (劍指offer第7題)

用兩個棧實現隊列 (劍指offer第7題)

info 一個 .com 所有 有一點 bsp 都沒有 我想 完成

用兩個棧來實現一個隊列,完成隊列的Push和Pop操作。 隊列中的元素為int類型。

棧的特點:先進後出

隊列的特點:先進先出

push很好實現。

pop可能有一點難度。最開始兩個棧中都沒有元素,所有進隊列的元素都存在stack1中。因為棧是先進後出,所有最先進來的要最後出,和隊列相反。所以需要借助satack2。我想起高中數學中的負負得正。將元素從stack1中彈出放到stack2中。正好第一個進隊列的元素在stack2的頂部。第一個彈出。

當Stack2中有元素後,再新進隊列的元素。直接存放在stack1中,想彈出的話,就先彈stack2中的元素。(因為本來stack2中的元素也是先進來的)當stack2中沒有元素後。在將stack1中的元素放到stack2中。

技術分享圖片

用兩個棧實現隊列 (劍指offer第7題)