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

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

教材學習內容總結

  • 集合
    • 集合是一種彙集、組織了其餘對象的對象
    • 集合中的元素一般是按照它們添加到集合的順序,或者是按元素之間的某種內在關係來組織的·
    • 集合是一種隱藏了實現細節的抽象·
    • 數據結構是一種用於實現集合的基本編程結構。
  • 棧集合
    • 棧的元素是按後進先出(凵FO)的方法進行處理的,最後進入棧中的元素最早被移出·
    • 編程人員選擇的數據結構,應與須要進行數據管理的類型相適應·
  • 主要的面向對象概念
    • 多態引用(polymorphicreference)是一個引用變量,它能夠在不一樣地點引用不一樣類型的對象。繼承可用於建立一個類層次,其中一個引用變量可用於指向與之相關的任意對象。
    • 泛型:咱們能夠定義一個類,以便它能存儲、操做和管理在實例化以前沒有指定是何種類型的對象。
  • 使用棧計算後綴表達式
    • 棧是用於計算後綴表達式的理想數據結構。
  • 異常
    • 在Java程序中出現問題時,會產生異常或錯誤。異常(exception)就是一個對象,它
      定義了一種非正常或錯誤的狀況。異常由程序或運行時環境拋出,能夠按預期的被捕獲或
      被正確處理。
    • 錯誤(error)與異常相似,只不過錯誤每每表示一種沒法恢復的狀況,且不
      必去捕獲它。
    • Java有一個預約義的異常和錯誤集,當程序運行時它們可能會發生。
    • 錯誤和異常表示不正常或不合法的處理·
  • 棧ADT
    • Java接口定義了一個抽象方法集,有助於把抽象數據類型的概念與其實現分隔開來·
    • 經過使用接口名做爲返回類型,方法就不會侷限於實現棧的任何特定類
  • 用數組實現棧
    • 出於運行效率的考慮,基於數組的棧實現老是使棧底位於數組的索引0處
  • 連接做爲引用
    • 鏈式結構(linkedstructure)是一種數據結構,它使用對象引用變量來建立對象之間的連接。
    • 褳表由一些對象構成,其中每一個對象指向了鏈表中的下一對象。
    • 鏈表會按需動態增加,所以在本質上,它沒有容量限制·
  • 管理鏈表
    • 要訪問其餘元素,必須先訪問第一個元素,
      而後順着下一個指針從一個元素到另外一個元素
    • 結點能夠被插入到鏈表的任意位置:鏈表的前端、鏈表中的內部結點之間或鏈表的末
      端。在鏈表前端添加結點時,須要從新沒置指向整個鏈表的引用
    • 鏈表中的任一結點均可被刪除。但無論刪除哪一個結點,都必須維護鏈表的完整性。與
      插入結點的過程同樣,在結點的刪除中,鏈表首結點的處理也是一種特例。

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

  • 問題1:泛型的好處
  • 問題1解決方案:在引入範型以前,Java類型分爲原始類型、複雜類型,其中複雜類型分爲數組和類。引入範型後,一個複雜類型就能夠在細分紅更多的類型。
    例如原先的類型List,如今在細分紅List, List 等更多的類型。
    注意,如今List , List 是兩種不一樣的類型,
    他們之間沒有繼承關係,即便String繼承了Object。下面的代碼是非法的
    List ls = new ArrayList ();
    List lo = ls;
    這樣設計的緣由在於,根據lo的聲明,編譯器容許你向lo中添加任意對象(例如Integer),可是此對象是
    List ,破壞了數據類型的完整性。
    在引入範型以前,要在類中的方法支持多個數據類型,就須要對方法進行重載,在引入範型後,能夠解決此問題(多態),更進一步能夠定義多個參數以及返回值之間的關係。
    例如
    public void write(Integer i, Integer[] ia);
    public void write(Double d, Double[] da);
    的範型版本爲
    public void write(T t, T[] ta);

  • 問題2:數組實現棧和鏈表實現棧分別有什麼好處
  • 問題2解決方案:只要在須要時,鏈表實現纔會分配存儲空間,而且只有硬件空間大小的理論限制。數組實現爲每一個對象使用的空間更少,由於它只需存儲對象,不須要存儲額外的指針。可是,在初始的時候,數組會分配比它所需的更多空間。html

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

    • 問題1:如何排序各個單詞的字母
    • 問題1解決方案:參考了上個學期的charAt方法將各個單詞的字母排序

    上週考試錯題總結

    • 錯題1及緣由,理解狀況
      A system that is well designed, written, and documented exhibits the quality characteristic of ____________.
      A .Reliability
      B .Maintainability
      C .Efficiency
      D .Robustness
      正確答案B,一個設計好的、書面的、有文件的系統展現了其可維護的特性前端

    • 錯題2及緣由,理解狀況
      Software must make efficient use of resources such as CPU time and memory.
      A .True
      B .Flase
      選B,軟件無需必定要有效地使用cpu和內存,主要看狀況java

    • 錯題3及緣由,理解狀況
      A stack can be used to preserve the order of a set of data.
      A .True
      B .Flase
      選B,隊列能夠保存順序,堆棧保存相反順序git

    • 錯題4及緣由,理解狀況
      The order of an algorithm is found by eliminating constants and all but the dominant term in the algorithm’s growth function
      A .True
      B .Flase
      選A,算法的階次是忽略該算法的增加函數中的常量和其餘次要項,只保留主項而得出的.算法

    代碼託管

    點評過的同窗博客和代碼

    • 本週結對學習狀況
      • 20172312
      • 結對學習內容
        • 課本第3、四章

    學習進度條

    代碼行數(新增/累積) 博客量(新增/累積) 學習時間(新增/累積) 重要成長
    目標 5000行 30篇 400小時
    第一週 0/0 1/1 8/8
    第二週 500/500 1/2 15/ 23

    參考資料

    posted @ 2018-09-18 22:22  m1sty 閱讀( ...) 評論( ...) 編輯 收藏
    javascript

相關文章
相關標籤/搜索