20162320劉先潤大二第10周做業

學號20162320 《程序設計與數據結構》第8周學習總結

教材學習內容總結

1、無向圖

  • 定義:和樹同樣,圖由結點以及結點間的鏈接組成,在圖中,結點稱爲頂點(vertice),結點的鏈接稱爲邊(edge)。頂點一般有名字或標記表示,例如:頂點A和頂點B之間有條邊表示爲(A,B)。而且表示變得頂點對是無序的,意味着兩點的雙向鏈接。若是兩個頂點有邊鏈接,則稱這兩個頂點是鄰接的(adjacent),但下圖中A、D不是鄰接。
  • 含有最多條邊的無向圖是徹底圖,即頂點的變數達到最大。
  • 若是無向圖中任意兩個頂點間都有路徑,則稱無向圖是連通的(connected)
  • 第一個頂點和最後一個頂點相同且邊不重複的路徑成爲環(cycle),如路徑A、B、C、D、A是環。沒有環的路徑稱爲無環圖(acyclic)

2、有向圖

  • 定義:圖中的邊是頂點的有序對的圖稱爲有向圖(directed graph),以下圖所示,有向圖中的路徑是鏈接圖中兩個頂點的有向邊的序列。
  • 樹是圖,有向樹是一個有向圖,其中指定一個元素爲根,具備如下特性:
        1.任何頂點到根都沒有鏈接
        2.到達每一個非根元素的鏈接都只有一種
        3.從根到每一個頂點都有路徑

3、帶權圖

  • 定義:圖的每條邊上都有對應的權值的圖稱爲帶權圖(weighted graph),以下圖的城市火車票價圖

4、圖的算法

  • 1.1圖的遍歷
       圖由兩種遍歷方式:一是相似於樹的程序遍歷的廣度優先遍歷(breath-first traversal),二是相似於樹的先序遍歷的深度優先遍歷(depth-first traversal)。兩者的主要差別在於用棧代替隊列來管理遍歷過程。
  • 1.2測試連通性
       連通性:包含n個頂點的圖是連通的,而且僅當從圖中的每一個頂點v開始的廣度優先遍歷結果的長度是n

當且僅當從任意頂點開始的廣度優先遍歷中的獲得的頂點數等於圖中所含的頂點數時,圖是連通的html

  • 1.3最小生成樹
       生成樹(spanning tree)是包含圖中全部頂點及圖中部分邊的一棵樹。最小生成樹是其所含邊的權值之和小於等於圖的任意其餘生成樹的邊的權值之和的生成樹git

  • 1.4斷定最小路徑
       圖有兩種最短路徑的斷定定義,一是斷定兩個頂點之間邊數最少的路徑,二是在帶權圖中找到最短路徑算法


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

  • 問題1:圖和樹有什麼差異?
    解答:圖是更通常的概念,它不約束除根結點以外的每一個頂點有且只能有一個父節點。圖中沒有根,每一個頂點都能與最多n-1個其餘頂點相連。
  • 問題2:無向圖的中的邊最可能是多少個?對於有向圖呢?
    解答:對於無向圖來講,由於每條邊能夠看做是兩個頂點的集合,因爲是徹底圖,因此至關於找n個頂點中取兩個點的取法,一共是C(n,2)=n(n-1)/2條邊。對於有向圖來講,設D=爲n階有向簡單圖(即不含平行邊,也不含環的圖),若對於任意的頂點u,v屬於V,既有有向邊,又有,則稱D是n階有向徹底圖.數目求法:利用乘法原理,n×(n-1)就是最多的有向圖邊。

代碼學習中的問題及解決

  • 問題1:實現代碼排序的逆序操做
    解答:利用冒泡排序,修改其中一部分源碼爲if (data[scan].compareTo(data[scan + 1]) < 0),即經過比較將小的值放到右邊,獲得逆序的隊列排序。測試截圖以下。

代碼託管

(statistics.sh腳本的運行結果截圖)數據結構


上週考試錯題總結

  • 錯題1:
When removing an element from a binary search tree, we must always ______________________.
A   .   make sure that the new tree is a binary search tree
B   .   build a new tree
C   .   find its inorder successor
D   .   remove all of its children
E   .   An element should never be removed from a binary search tree.

解答:我選的是C,由於教材上說過,當刪除一個元素時,須要找到它在中序遍歷的後一個元素來代替。正確答案是A,由於找代替的前提是肯定子樹是一個新的二叉查找樹。app

  • 錯題2:
In a balanced binary search tree, adding an element always requires approximately O(log2 n) steps.
A   .   true
B   .   false

解答:這句話是正確的,在二進制搜索樹中添加一個元素須要與查找元素同樣多的步驟。因爲加入了尋找一個平衡的二叉搜索樹的元素老是須要O(log2n)的步驟,添加一個元素也同樣。學習


結對及互評

點評過的同窗博客和代碼


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

Chase the wind and touch the sky,A stars light shines on long after it dies,In the night,Live everyday as if it's your last.堅持下去,加油!測試


學習進度條

代碼行數(新增/累積) 博客量(新增/累積) 學習時間(新增/累積) 重要成長
目標 5000行 30篇 400小時
第一週 188 1/1 25 算法分析
第二週 70/258 1/2 15/40 《構建之法》7-9章
第三週 474/732 1/3 20/60 查找和排序
第四五六週 1313/2045 4/7 12/72 棧和隊列
第七週 890/2935 1/8 14/86
第八週 913/3848 1/9 20/106 二叉查找樹
第九周 890/3738 1/10 13/119
第十週 637/4374 2/12 18/137
第十一週
  • 計劃學習時間: 20+小時
  • 實際學習時間: 25小時

(有空多看看現代軟件工程 課件 軟件工程師能力自我評價表)ui

參考資料

相關文章
相關標籤/搜索