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

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

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

棧的特點:先進後出

佇列的特點:先進先出

push很好實現。

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

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