软考 - 图
文章目錄
- 1.圖的分類
- 1.1.強連通圖
- 1.2.完全圖
- 2.存儲結構
- 2.1.鄰接矩陣表示法:
- 2.2.鄰接鏈表表示法:
- 3.圖的遍歷
- 3.1.深度優先遍歷
- 3.2.廣度優先遍歷
- 4.最小生成樹
- 4.1.普里姆算法:
- 4.2.克魯斯卡爾算法:
- 5.AVO網絡、AOE網絡
1.圖的分類
1.1.強連通圖
任意兩頂點間都是聯通的(存在路徑)
1.2.完全圖
任意兩個頂點都有邊
2.存儲結構
對于圖G,有m個邊,n個節點
2.1.鄰接矩陣表示法:
對于圖G,二維數組A[i][j],如果邊(vi,vj)存在路徑,則A[i][j] = 1,否則A[i][j] = 0;
深度優先遍歷時:需要遍歷鄰接矩陣的n×n個點,所以時間復雜度為(O(n2))
2.2.鄰接鏈表表示法:
為圖的每個頂點建立一個單鏈表,第i個節點表示依附于頂點Vi的邊(弧);
深度優先遍歷時:依次訪問每一個節點,然后依次訪問當前節點的每條邊,把這些邊的終點節點的入度+1,所以每個節點,每條邊都需要訪問一邊,所以時間復雜度為(O(m+n))
3.圖的遍歷
3.1.深度優先遍歷
首先訪問頂點,然后訪問當前節點鄰接且未被訪問過的節點;
無符合的,則回溯到一個尚有鄰接節點且未被訪問的節點,重復第一步;
3.2.廣度優先遍歷
首先訪問頂點v,然后依次訪問當前v的各個未被訪問的鄰接點;然后分別沖這些鄰接點訪問他們的鄰接點;
4.最小生成樹
圖的生成樹:
圖的最小生成樹:各邊的權值總和最小的生成樹;
4.1.普里姆算法:
O(n2),與邊數無關,適合邊密集的圖
選一條最小權值的邊,不斷選擇與已選擇邊鄰接且權值最小的邊加入集合,直至集合包含所有的頂點;貪心法
4.2.克魯斯卡爾算法:
O(nlogn),與頂點無關,適合邊稀疏的圖
在不形成回路的前提下,不斷尋找權值最小的邊,嘗試構成最小生成樹;回溯法
5.AVO網絡、AOE網絡
AVO網絡:一個項目的的實施過程有很多活動,這些活動的進行有先后順序,那么這些揮動的先后關系可以用一個有向圖表示;頂點代表活動、有向邊表示活動間的先后關系;
拓撲排序:AOV網絡的拓撲排序可能有多個,只要滿足,對于AVO網絡中的每條弧(i,j),拓撲排序中,i都在j的前面;
AOE網絡:帶權值的AVO網絡;邊代表活動、邊上的權值代表活動需要的時間、頂點代表活動結束的事件;
AOE網絡的關鍵路徑:完成項目需要的最少時間,也就是AOE網絡中從開始頂點到結束頂點的最長帶權路徑的權值和;
求圖的 拓撲排序 及關鍵路徑長度
總結
- 上一篇: 实战_06_SpringBoot整合re
- 下一篇: 怎么去除idea中代码的波浪线(黄色警告