20182309 2019-2020-1 《數據結構與面向對象程序設計》第9周學習總結

20182309 2019-2020-1 《數據結構與面向對象程序設計》第9周學習總結

教材學習內容總結

    • 一種非線性結構
    • 二叉樹
      • 滿二叉樹
      • 徹底二叉樹
    • 實現樹
    • 遍歷
      • 前序:根左右
      • 中序:左根右
      • 後序:左右根
      • 層序:橫向看
    • 決策樹

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

  • 問題1:滿二叉樹,徹底二叉樹
  • 問題1解決方案:滿二叉樹是要求全部有節點的層都是滿的,徹底二叉樹要求全部元素靠左上。

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

  • 問題1:遍歷時發現數組迭代器不在包裏
  • 問題1解決方案:本身寫了一個數組迭代器,把要用的功能實現了
import java.util.Iterator;

public class ArrayIterator<T> implements Iterable<T> {
    private final int DEFAULT_CAPACITY = 20;

    private T[] ary;
    private int count;

    public ArrayIterator() {
        count = 0;
        ary = (T[]) (new Object[DEFAULT_CAPACITY]);
    }

    public void expandCapacity(){
        T[] longer = (T[])(new Object[ary.length*2]);
        for(int index = 0; index < count; index++)
            longer[index] = ary[index];
        ary = longer;
    }

    public void add(T element){
        ary[count++] = element;
    }

    @Override
    public Iterator<T> iterator() {
        return null;
    }

    @Override
    public String toString(){
        String rpy = "";

        for (int index = 0; index < count; index++)
            rpy += ary[index];
        return rpy;
    }
}

代碼託管

結對及互評

  • 代碼中值得學習的或問題:
    • 提出與課本不一樣的方法解決問題
  • 基於評分標準,我給本博客打分:10分。得分狀況以下:
    • 正確使用Markdown語法加1分
    • 模板中的要素齊全加1分
    • 教材學習中的問題和解決過程, 一個問題加1分
    • 代碼調試中的問題和解決過程, 一個問題加1分
    • 本週有效代碼超過300分行的加2分
    • 排版精美的加1分
    • 代碼Commit Message規範的加1分
    • 有動手寫新代碼的加1分
    • 結對學習狀況真實可信的加1分

點評過的同窗博客和代碼

  • 本週結對學習狀況
    • 20182331
    • 結對學習內容
      • 閱讀教材第16章和第17章內容
      • 代碼託管到碼雲上
      • 完成課後自測題,並參考答案學習
      • 完成課後練習題
      • 完成程序設計項目,至少完成pp16.6,pp17.1

上週錯題總結

  • In an ideal implementations of a stack and a queue, all operations are ______________________ .
    A . O(1)
    B . O(n)
    C . O(n log n)
    D . O(n2)
    E . it depends on the operation
    答案:B。在堆棧和隊列的良好實現中,全部操做都須要固定的時間。html

  • If a binary search tree is not __________, it may be less efficient than a linear structure.
    A . complete
    B . empty
    C . balanced
    D . None of the above
    答案:C。若是二叉搜索樹不平衡,它的效率可能低於線性結構。java

學習進度條

代碼行數(新增/累積) 博客量(新增/累積) 學習時間(新增/累積) 重要成長
目標 10000行 30篇 400小時
第一週 138/138 2/2 25/25 學會寫和上傳代碼,會編簡單的輸出程序
第二週 88/226 1/3 30/55 起文件名不能太長
第三週 898/1124 2/5 35/90 Java類裏面的方法和C語言的函數很像
第四周 632/1756 2/7 30/120 能夠用繼承extends簡化重複的代碼
第五週 770/2526 2/9 45/165 --amend -m能夠重命名沒push的文件
第六週 3947/6473 2/11 40/205 接口類的功能要分散,利用多繼承完成功能
第七週 1359/7832 3/14 35/240
第八週 273/8105 1/15 15/255 查找前先排序更好
第九周 873/8978 2/17 50/305

參考資料

相關文章
相關標籤/搜索