邊沒有方向的圖稱爲無向圖。
html
含有最多條邊的無向圖稱爲徹底圖:Edges=(n-1)*n/2.
java
若是圖中兩個頂點之間有邊鏈接,則稱這兩個頂點是鄰接的(鄰居),本身鏈接到本身的邊稱爲自循環或懸掛。git
若是給圖的每條邊規定一個方向,那麼獲得的圖稱爲有向圖,其邊也稱爲有向邊。在有向圖中,與一個節點相關聯的邊有出邊和入邊之分,而與一個有向邊關聯的兩個點也有始點和終點之分。算法
樹就是圖,樹的大部分工做是針對有向樹。有向樹是一個有向圖。數組
無向帶權圖
服務器
有向帶權圖
網絡
十字鏈表法數據結構
問題2解決方案:學習
1.徹底是任意兩個頂點之間都會有一條邊。 2.連通是任意兩個頂點之間都存在一條路徑。 3.徹底的必定連通。
問題3解決方案:測試
廣度優先遍歷:左看看、又看看,雨露均沾。
1. 初始化隊列:visited[n] = 0 2. 訪問頂點:visited[v] = 1 3. 頂點v加入隊列 4. 循環: while(隊列是否爲空) v = 隊列頭元素 w = v的第一個鄰接點 while(w存在) if(若是w未訪問) visited[w] = 1; 頂點w加入隊列 w = 頂點v的下一個鄰接點
1. 訪問數組初始化:visited[n] = 0 2. 訪問頂點:visited[v] = 1 3. 取v的第一個鄰接點w; 4. 循環遞歸: while(w存在) if(w未被訪問過) 從頂點w出發遞歸執行; w = v的下一個鄰接點;
public boolean isConnected() { boolean result = true; for(int i=0;i<numVertices;i++){ int temp=0; temp=getSizeOfIterator(this.iteratorBFS(vertices[i])); if(temp!=numVertices) { result = false; break; } } return result; }
上週沒有考試,因此沒有錯題。
本週主要學習了圖的知識,例如如何畫鄰接矩陣、十字鏈表和鄰接鏈表。如何計算圖的廣度優先遍歷和深度優先遍歷。還有用Prim算法和Kruskal算法計算最小生成樹等等。
代碼行數(新增/累積) | 博客量(新增/累積) | 學習時間(新增/累積) | 重要成長 | |
---|---|---|---|---|
目標 | 10000行 | 30篇 | 400小時 | |
第一週 | 56/56 | 2/2 | 20/20 | 主要學會了簡單的操做Linux以及如何編寫簡單的java程序並將它上傳到碼雲 |
第2、三週 | 331/407 | 3/5 | 23/43 | 學會了一些類和程序包的使用,也明白了C語言和Java在有些地方的區別 |
第四周 | 595/1002 | 2/7 | 20/60 | 學會了IDEA以及用IDEAgit碼雲,也學會了TDD測試 |
第五週 | 1621/2623 | 2/9 | 17/77 | 見識了服務器與用戶連接的代碼,也學習了繼承的一些知識。 |
第六週 | 1770/4393 | 1/10 | 22/99 | 學習了多態以及與接口和繼承的關係,還有就是對異常的學習和處理異常的方法以及自定義一個異常 |
第七週 | 1747/6140 | 3/13 | 23/122 | 學習了漸進複雜度的計算,棧和隊列的學習,分別用數組和鏈表實現隊列 |
第八週 | 384/6524 | 1/14 | 20/142 | 學習了一些查找和排序的算法,也學會了計算ASL |
第九周 | 1895/8419 | 3/17 | 22/164 | 學習了樹的四種遍歷,和怎樣根據已知序列求未知序列等等 |
第十週 | 1946/10365 | 3/20 | 22/183 | 學習瞭如何求圖圖的廣度和深度優先遍歷,以及如何用Prim算法和Kruskal算法計算最小生成樹等等。 |
計劃學習時間:20小時
實際學習時間:22小時
改進狀況:無