20172323 2018-2019-1 《程序設計與數據結構》第四周學習總結

20172323 2018-2019-1 《程序設計與數據結構》第四周學習總結

教材學習內容總結

本週學習第六章--列表
6.1列表集合php

  • 列表集合是一種概念性表示法,其思想是使事物以線性列表的方式進行組織,列表集合沒有內在的容量大小,能夠隨須要而增大。
  • 列表集合比棧和隊列更通常化,能夠在其中間和末端進行添加和刪除元素
  • 列表集合的分類
類型 特色
有序列表(ordered list) 元素按照元素的某種內在特性進行排序
無序列表(unordered list) 元素間不具備內在順序,按照元素在列表中的位置進行排序
索引列表(indexed list) 元素能夠用數字索引來引用
  • 對於任何已添加到有序表中的元素,只要給定元素的關鍵值,同時列表已經定義了元素的全部關鍵值,那麼它在列表中就有一個固定的位置
  • 索引列表的索引值老是連續的

6.2 Java集合API中的列表
6.3 使用無序列表:學習計劃
6.4 索引列表使用示例:Josephus問題
6.5 列表ADThtml

  • 有序列表和無序列表之間的差異主要體如今往列表添加元素上

6.6 使用數組實現列表java

  • 只有Comparable對象才能存儲在有序列表中

6.7 使用鏈表實現列表git

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

  • 問題1:教材P97提到ProgramOfStudy和Course類實現了Serializable接口,不明白這個接口表明什麼意思
  • 問題1解決方案:查閱資料,首先這個接口是用於實現序列化的。序列化是一種用來處理對象流的機制,簡單說就是爲了保存在內存中的各類對象的狀態(也就是實例變量,不是方法),而且能夠把保存的對象狀態再讀出來。Java 序列化技術可使你將一個對象的狀態寫入一個Byte 流裏(系列化),而且能夠從其它地方把該Byte 流裏的數據讀出來(反序列化)。

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

  • 問題1:PP6.11的實現過程當中出現了以下圖所示的幾個問題
  • 問題1解決方案:當執行add操做時(將元素添加到列表尾)提示出現空指針的狀況,首先粗略地檢查一下,發現addToFront和addToRear兩個方法都沒有考慮列表爲空的狀況,先加上再說

    再執行一次

    如今反映的問題是,儘管addToFront和addToRear兩個方法都成功把元素添加到了列表中,但彷佛計算機並無將我但願的列表尾認爲是xxx.last(),再仔細看一下代碼,發現addToRear執行一次後,我並無將tail指針指向新的尾結點,依然指向添加前的那一個,因而再添加一行tail = lt;//lt爲添加進列表的結點,再次執行,就有了正確的運行結果了

代碼託管

上週考試錯題總結


  • 錯題1:A polymorphic reference uses _______________, not the type of the reference, to determine which version of a method to invoke.
    A .the type of the object
    B .the type of the reference
    C .both A and B
    D .none of the above
  • 解析:根本就沒有認真讀題!後半部分明明已經說了「not the type of the reference",竟然也能選錯啊。多態引用使用的是該對象的類型(而不是引用的類型)來決定調用哪一個版本的方法

  • 錯題2:A reference variable can refer to any object created from any class related to it by inheritance.
    A .true
    B .false
  • 解析:一個引用變量能夠指向建立自任何與其具備繼承相關性的類的任一對象。

  • 錯題3:The implementation of the collection operations should affect the way users interact with the collection.
    A .true
    B .false
  • 解析:集合操做的實現細節不該該影響使用者與集合進行交互的方式

  • 錯題4:Common features should be located as low in a class hierarchy as is reasonable, minimizing maintenance efforts.
    A .true
    B .false
  • 解析:共同特徵應該在合理的條件下儘量高的至於該層次結構中,以最小化維護工做。

  • 錯題5:The most efficient way to implement an array-based stack keeps the top of the stack at the position 0 of the array?
    A .true
    B .false
  • 解析:出於運行效率的考慮,基於數組的棧實現老是使棧底位於數組的索引0處。

結對及互評

博客中值得學習的或問題:

  • 教材學習內容詳實,有本身的理解感悟
  • 排版簡潔明瞭web

    代碼中值得學習的或問題

  • 代碼清晰明瞭,有本身思考的痕跡
  • 有適當的註解,能幫助別人瞭解代碼的含義
  • 基於評分標準,我給譚鑫的博客打分:5分。得分狀況以下:
    正確使用Markdown語法(加1分):
    模板中的要素齊全(加1分)
    教材學習中的問題和解決過程, 一個問題加1分
    代碼調試中的問題和解決過程, 一個問題加1分數組

  • 基於評分標準,我給方藝雯的博客打分:5分。得分狀況以下:、
    正確使用Markdown語法(加1分):
    模板中的要素齊全(加1分)
    教材學習中的問題和解決過程, 一個問題加1分
    代碼調試中的問題和解決過程, 一個問題加1分數據結構

點評過的同窗博客和代碼

其餘

國慶假期快樂啊!利用國慶假期敲代碼更是歡喜得不行,一不注意就寫了2500行代碼仍是有點驕傲的。不過是否真正汲取到了對等的知識就很難說了,學以至用的能力始終太差,反映在考試上、實踐中就差很少是一問三不知,須要別人的幫助纔可以起步。學習

學習進度條

代碼行數(新增/累積) 博客量(新增/累積) 學習時間(新增/累積) 重要成長
目標 5000行 30篇 400小時
第一週 0/0 1/1 8/8
第二週 470/470 1/2 12/20
第三週 685/1155 2/4 10/30
第四周 2499/3654 2/6 12/42

參考資料

相關文章
相關標籤/搜索