1. 程式人生 > >DS第3章學習小結

DS第3章學習小結

eem enqueue 具體實現 相關 指南 接下來 理由 細節問題 push

  1. 你對本章內容的小結
  2. 完成作業或實踐時解決困難的經驗分享
  3. 這段時間,你參考了哪些值得向大家分享的資料?每一項推薦都請說明推薦理由及列出相關鏈接(或書目名稱,具體頁碼)
  4. 目前學習過程中存在的困難,待解決或待改進的問題
  5. 上次博客確定的目標達到了嗎?如果沒達到,請分析原因
  6. 接下來的目標

一、你對本章內容的小結

  第2章主要學習的隊列

  是一種後進先出(LIFO)的線性表,而隊列是一種先進先出(FIFO)的線性表

  只允許對棧頂進行操作,而隊列只允許對隊尾隊頭進行操作

  隊列的引入簡化了程序設計的問題,劃分了不同的關註層次,使思考範圍縮小了,而不用像數組那樣關註下標等的細節問題

  的基本操作有:

  InitStack(&S)、StackEmpty(S)、GetTop(S)、Push(&S,e)、Pop(&S)

  隊列的基本操作有:

  InitQueue(&Q)、QueueEmpty(Q)、GetHead(Q)、EnQueue(&Q,e)、DeQueue(&Q)

  

  還學了棧與遞歸遞歸負責解決本層問題,一般的算法框架為

  void p(參數表)

  {

    if (遞歸終止條件) 直接求解;// 遞歸終止

    else p(較小的參數);// 遞歸求解

  }

  遞歸的優點:結構清晰,程序易讀

     缺點:時間開銷大

二、完成作業或實踐時解決困難的經驗分享

  ‘\b’代表退格但是和按下退格鍵不一樣,它只是移動當前的光標向前移動一位,所以在pta做題時  

  不可以像我下面這樣,若是這樣做了,答案肯定是錯的!!!

1     for(int i=0; i<n; i++)
2     {
3         cout<<data[i]<<" ";
4     }
5     cout<<\b;

三、這段時間,你參考了哪些值得向大家分享的資料?每一項推薦都請說明推薦理由及列出相關鏈接(或書目名稱,具體頁碼)

  https://www.cnblogs.com/wft1990/p/5861529.html

  這個博客介紹了各種輸入流的用法和不同,有時候做題時出現  “以......標誌著輸入結束”  可能會用到。

四、目前學習過程中存在的困難,待解決或待改進的問題

  對一些算法進行具體實現的時候還是不太能得心應手,有時候寫的算法有點亂,也不夠結構化、層次化。

五、上次博客確定的目標達到了嗎?如果沒達到,請分析原因

  達到了吧,老師給的高質量c++編程指南1~30頁看了,課程也基本聽懂了?

  雖然那1~30頁說的都是平時打代碼時的一些很基礎的習慣,但我還是覺得很有用,寫程序規範化一點能使程序更容易讀嘛~

六、接下來的目標

  以後的算法都要結構化,劃分不同的關註層次,盡量簡化程序設計的問題。

  看老師給的高質量c++編程指南31~60頁。

DS第3章學習小結