1. 程式人生 > >The first day in LeetCode

The first day in LeetCode

#膜拜LeetCode的第一天1.2 接著上次Two Sum的嘗試之後,才漸漸對LeetCode的題目要求,以及運用所給提供的標頭檔案答題的答題方式有了一定的瞭解,用Clion debug也是很好笑,LeetCode有debug功能咩?還需要進步加強練習叭~

Implement Stack using Queues

根據題意要求用兩個佇列實現棧的功能 佇列:先進先出 棧:先進後出 所以若要達到先進後出的效果,則先把一個數存入佇列,比如先把1push入q1,然後把2push入q2,再把1從q1中彈出,push入q2,則q2中所存的數為:2 1,此時若出列,則2先出,1隨後,則滿足棧的功能,所以:

  1. 申明兩個佇列,標頭檔案要include<queue ,e.g:queue<int q1來申明q1佇列e.g:queue<int q1來建立q1佇列
  2. 若q1為空,則把元素a入隊,若此時另一個佇列q2為空則不做操作,如不為空(說明有比a更早的元素b入隊了),則把b元素pop出隊,入隊到q1,這樣先入隊的元素b反而排在a的後面。
  3. 再經過2操作之後,最後q1和q2只有一個佇列不為空,那麼pop函式就是將不為空的佇列的首元素彈出,由於題目給的標頭檔案是int,所以要返回首元素的值,運用q1.front()取出首元素的值。
  4. top函式也是取首元素的值,同理3
  5. empty函式,則q1和q2都empty的時候返回bool值1;

程式碼

在這裡插入圖片描述在這裡插入圖片描述