學號 2017-2018-20172309 《程序設計與數據結構》第10周學習總結

學號 2017-2018-20172309 《程序設計與數據結構》第10周學習總結

教材學習內容總結

  • 集合與數據結構
    • 集合是一種對象,相似於保存其餘對象的存儲庫。
    • 咱們經常用集合表示一個專門用於保存元素的對象,而且該對象還提供增添、刪除等管理所保存元素的服務。
    • 集合分同構和異構。
    • 對象具備定義良好的接口,從而成爲一種實現集合的完善機制。
  • 數據結構的動態表示
    • 數組具備侷限性,在存在期間具備固定的大小。動態數據結構的大小規模隨須要增加和收縮。
    • 一個動態數據結構用鏈來實現,利用對象引用做爲鏈接對象間的鏈。
  • 其餘的動態列表
    • 雙向鏈表:雙向鏈表的每個節點都有兩個引用。一個引用指向該節點前的一個節點,另外一個引用指向該節點的後一個節點。
    • 頭節點:鏈表中的頭節點是一個特殊的節點,包含了有關鏈表信息,如指向鏈表頭和鏈表尾的引用及一個跟蹤記錄鏈表當前節點數的整型變量。
  • 線性數據結構
    • 隊列:隊列是一種以先進先出方式管理數據的線性數據結構。
    • 堆棧:堆棧是一種之後進先出方式管理數據的線性數據結構。
  • 非線性數據結構
    • 樹:樹是一個非線性數據結構,由一個根節點和構成層次結構的多個節點組成。除根節點外的全部節點稱爲內部節點,沒有子節點的節點稱爲葉節點。
    • 圖:圖是 非線性數據結構,是用常見的編來鏈接節點。
  • java集合類API
    • ArrayList表明的是列表集合而且用基本的數組類型實現。
    • LinkedList代表這是一個用動態內部鏈實現的列表集合。
    • 泛型:指一個集合所管理的對象的類型要在實例化該集合對象時才肯定。java集合類API中定義的類稱爲泛型
    • 泛型保證了集合中對象類型的兼容性。html

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

  • 問題1:ArrayList和LinkedList類分別有什麼優缺點?
  • 問題1解決方案:
    經過百度查詢得:


  • 問題2:如何理解泛型?
  • 問題2解決方案:java

    1.概述:是一種把明確類型的工做推遲到建立對象或者調用方法的時候纔去明確的特殊的類型。
    2.格式:
    <數據類型>
    注意:**該數據類型只能是引用類型**。
    3.好處:
    A:把運行時期的問題提早到了編譯期間
    B:避免了強制類型轉換
    C:優化了程序設計,解決了黃色警告線問題,讓程序更安全

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

  • 問題1:如何理解這一段代碼?
>       public void add(DVD dvd)
>      {
>        DVDNode node = new DVDNode(dvd);
>        DVDNode current;
>
>         if(list==null)
>             list=node;
>         else
>         {
>             current = list;
>             while(current.next!=null)
>                 current=current.next;
>             current.next=node;
>         }
>     }
  • 問題1解決方案:
  • 問題2:PP13.3運行時顯示出來的爲地址:
  • 問題2解決方案:出現這個問題我知道是由於沒有寫toString()方法,由於toString的內容是一個數值,因此覺得不用toString,但事實說明確實須要toString,並且我還忘了怎麼作!所以個人解決方案是使用自動生成toString()方法。

    結果是
  • 問題3:在作PP13.3出現空指針!
  • 解決方案:有錯誤提示可知是由於在第60行出現錯誤的!所以我找到了錯誤:

    圖中箭頭所指會循環直到current2爲null,所以在下面的一個方框中的賦值是不正確的,至關於num沒有節點當作載體。
    所以我轉變思路:

代碼託管


上週考試錯題總結

  • 錯題1及緣由,理解狀況:

    作這題時沒有考慮全面,忽略了輸入值爲負值的狀況。node

  • 錯題2及緣由,理解狀況:

    遞歸的狀況下,該方法使用相同的參數調用本身,因此n不會改變,所以若是(n> 0)最初爲真,它將保持爲真。
  • 錯題3及緣由,理解狀況:

    考慮過多,直接遞歸就是本身調用本身,間接遞歸即中間還有一個方法。
  • 錯題4及緣由,理解狀況:

    無限循環和遞歸都是類似的,由於它們繼續無限地重複。 編譯器或運行時(JVM)都不能捕獲它們。
  • 錯題5及緣由,理解狀況:

    此次作了一遍,發現是正確的,不知道之前怎麼作錯了。git

    點評模板:

優勢與不足:

  • 博客中值得學習的或問題:
    • 內容解釋結合圖片來解釋,顯而易懂。
    • 重點用不一樣的顏色突出。
    • 對圖與樹的解釋詳細。
  • 代碼中值得學習的或問題:
    • 代碼解釋有點少,多是做業不是很難的緣故。
  • 基於評分標準,我給本博客打分:14分。vim

    點評過的同窗博客和代碼

  • 本週結對學習狀況
    • 20172310
    • 結對學習內容
      • 課本第十章內容:集合與數據結構、數據結構的動態表示
      • 複習了堆棧的內容。
      • 樹與圖。
  • 上週博客互評狀況

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

這一章很是的抽象,有點不適合我這種智商過高的人,致使我得想很久,不!應該是學很久。不過還好,最後仍是弄懂了點皮毛。在這個過程當中,發現本身很是的懶,想一個問題時,老是不善於深究。老是大腦自動跳出來,特別是當碰見那種反覆循環的問題時,大腦不是不跳就是跳的太快,致使本身都跟不上。o(╥﹏╥)o真是服了本身!!數組

學習進度條

代碼行數(新增/累積) 博客量(新增/累積) 學習時間(新增/累積) 重要成長
目標 5000行 30篇 400小時
第一週 075/200 1/1 05/20
第二週 560/500 1/2 13/38
第三週 972/1000 1/4 21/60
第四周 694/1666 1/5 21/90
第五週 1544/3095 1/6 30/90
第六週 600/3627 1/7 30/120
第七週 544/4200 2/9 20/140
第八週 907/5107 2/10 20/160
第九周 700/5807 1/11 20/180
第十週 900/6782 2/13 20/200

參考資料

1.集合總結筆記(jdk 1.6)——ArrayList/LinkedList
2.數據結構——圖
3.Java學習筆記(第8版)》學習指導
4.命令行參數總結安全

相關文章
相關標籤/搜索