图论算法基础
【0】README
0.1)本文總結于 數據結構與算法分析, 旨在復習數據結構中圖論算法的基礎知識;
【1】圖論若干相關定義
1.1)圖G定義:一個圖G=(V,E)由頂點及集V 和 邊集E組成, 每一條邊就是一個點對(v, w);
1.2)邊鄰接:當且僅當(v,w)∈E, 在無向圖中, w和v鄰接,且v也和w鄰接;(還有第3中成分:邊的權值)
1.3)路徑: 一條路徑是一個頂點序列 w1, w2,…,wn, 使得(wi,wi+1)∈E,這樣一條路徑長是該路徑上的邊數;
1.4)簡單路徑:其上的所有頂點都是互異的,但第一個頂點和最后一個頂點可能相同;
1.5)連通圖(對于無向圖而言): 如果在一個無向圖中從每一個頂點到每個其他頂點都存在一條路徑,則稱該無向圖是連通的;
1.6)強連通圖(對于有向圖而言):具有無向圖連通性質的有向圖稱為是強連通的;
1.7)基礎圖:去掉有向圖上的方向所形成的圖;
1.8)弱連通圖:如果有向圖不是強連通的, 但基礎圖是連通的, 那么該圖稱為是弱連通的;
1.9)完全圖: 是指每一對頂點間都存在一條邊的圖;
【2】圖的表示
2.1)鄰接矩陣:對于每條邊(u, v), 我們設置 A[u][v]=1,否則數組的元素為0;如果邊是有權的,設置A[u][v] 等于該權值 且用一個很大或者很小的權作為標記表示不存在的邊;(∞)
- 2.1.1)鄰接表的空間需求是 Θ(|V|^2);如果圖是稠密的:|E| = Θ(|V|^2) , 則鄰接矩陣是合適的表示方法;如果在大部分應用中,圖都是稀疏的;
2.2)鄰接表(圖的標準表示方法):如果圖是稀疏的, 則使用鄰接表來表示。對每一個頂點,我們使用一個表存放所有鄰接的頂點。此時的空間需求為 O(|E| + |V|);
- 2.2.1)引入散列表:在應用中,頂點都是名字而不是數字, 這些名字在編譯時是未知的。由于我們不能夠通過未知名字為一個數組做索引, 因此我們必須提供從名字到數字的映射。完成這項工作最容易的 方法是使用散列表, 在該散列表中我們對每個頂點存儲一個名字以及一個范圍在1到 |V| 之間的內部編號;
- 2.2.2)鄰接表的一個荔枝:
總結
- 上一篇: 网易企业邮箱怎么申请(网易企业邮箱怎么申
- 下一篇: 无权最短路径