本章的內容主要講圖的知識,圖與樹的定義相似,讓樹容許在其每一個結點連通多個其餘節點,再也不有父親孩子之說時就成了圖。圖由頂點和邊構成,頂點通常由A,B,C,D等表示,相應的邊能夠表示成(A,B),(B,C)等。圖分爲兩種:有向圖和無向圖。java
連通的無向圖:若是無向圖中任意兩個頂點之間都存在一條路徑,則認爲該無向圖是連通的。git
最小生成樹:首先明確生成樹的概念,包含圖的所有頂點和全部邊。最小生成樹,其邊的權重之和小於或等於同一個圖中其餘任何一個生成樹。例如,普利姆算法求最小生成樹:
算法
圖的實現策略:書上講到了兩種實現策略,鄰接列表和鄰接矩陣,而所謂鄰接指的就是實現圖的兩個相鄰的頂點鏈接起來。數組
如圖:網絡
如圖:數據結構
問題二解決方案:其實這個問題很是簡單,只是本身的腦子沒扭過來,直接把那個1變爲須要加上的權重就實現了加權圖。oop
Graph
類補全時遇到一些困難。。isEmpty
方法,我本來的代碼以下:public boolean isEmpty() { if (numVertices == 0) { return true; } else { return false; } }
public boolean isEmpty() { return (numVertices == 0) }
本身想了想發現這樣的確會簡單不少。這告訴咱們應該多多想一想算法的優化。學習
錯題1解析:堆排序的時間複雜度是O(nlogn)測試
錯題2解析:跟上題同理。優化
(本部分用於收集本章節後的生詞)
代碼行數(新增/累積) | 博客量(新增/累積) | 學習時間(新增/累積) | 重要成長 | |
---|---|---|---|---|
目標 | 5000行 | 30篇 | 400小時 | |
第一週 | 0/5000 | 2/2 | 8/8 | 認真學習!積極向上 |
第二週 | 812/812 | 1/3 | 22/30 | |
第三週 | 814/1626 | 1/4 | 20/50 | |
第四周 | 1386/3012 | 2/6 | 20/70 | 愉快的國慶節就要結束了... |
第五週 | 1222/3234 | 1/7 | 30/100 | |
第六週 | 1327/4561 | 2/7 | 30/100 | 啦啦啦啦啦 |
第七週 | 1170/5631 | 1/8 | 33/133 | |
第八週 | 1250/6881 | 2/10 | 30/163 | |
第九周 | 2275/9156 | 1/11 | 31/194 |