20172332 2017-2018-2 《程序設計與數據結構》第三週學習總結

20172332 2017-2018-2 《程序設計與數據結構》第三週學習總結

教材學習內容總結

第五章 隊列html

  • 1.隊列是一種線性集合,元素從一段加入從另外一端刪除(先進先出)。
  • 2.隊尾(tail),隊首(head),隊列前端(front),隊列末端(rear)。
  • 3.使用隊列的一些實例:凱撒密碼,售票口模擬。
  • 4.分別用鏈表和數組實現隊列。
  • 5.雙端隊列,容許從隊列的兩端添加、刪除和查看元素。
  • 6.環形數組實現隊列。

教材學習中的問題和解決過程

  • 問題1:爲何用數組實現隊列時,環形數組較好?
  • 問題1解決方案:環形隊列能夠解決數組移動的缺點,當尾指針超出數組末尾時,尾指針移動數組頭部。這就將數組虛擬成了一個環形,只要隊列長度沒達到最大值,就能夠插入,而不用移動數組。

代碼調試中的問題和解決過程

書上的代碼有不少的錯誤!因此直接在源代碼中修改了前端

  • 問題1:從尾部移出元素的方法,元素個數變少了,可是最終toString方法時,仍是會輸出移出的元素。java


  • 問題1解決方案:運用了一個循環,找到倒數第二個元素,並把它作爲了隊尾。git

代碼託管

上週考試錯題總結

  • 上週沒進行測試。

點評過的同窗博客和代碼

其餘(感悟、思考等,可選)

  • 首先我就想說一下我以爲這學期的教材沒有上學期的好,其一是代碼中出現了不少的錯誤,按照書上的代碼敲的程序都不能正常運行,變量名先後不統一,多括號,變量名就是錯的等等有好多的問題嚴重影響自主學習!其二是代碼後沒有給出運行結果,就沒法對比本身的結果是否正確。
  • 其次我要抽時間把用數組和鏈表實現棧和隊列,還有雙向鏈表,環形數組等好好研究一下作個總結博客,而且把之後要學的列表等慢慢補全。
  • 最後想說的就是隊列的實現和棧的思路很像。

學習進度條

代碼行數(新增/累積) 博客量(新增/累積) 學習時間(新增/累積) 重要成長
目標 5000行 30篇 400小時
第一週 0/0 1/1 2/2
第二週 1010/1010 1/2 10/12
第三週 651/1661 1/3 13/25
  • 計劃學習時間:20小時數組

  • 實際學習時間:13小時數據結構

  • 改進狀況:由於和棧的思路很像,因此不少都是在棧的代碼上進行修改。學習

參考資料

相關文章
相關標籤/搜索