摘要:無向圖的數據結構邊數邊的數目鄰接表,存儲與該節點相鄰的節點,一個鏈表數組無向圖的創建一個含有個節點但不含邊的無向圖從輸入流中讀取一幅圖返回圖中有多少個節點邊數添加一條邊節點相鄰的所有頂點對象的字符串表示實現很簡單鄰接表既然實現了圖這種數據結
無向圖的數據結構
Class Graph private final int V; 邊數 private int E; 邊的數目 private Bag無向圖的API[] adj; 鄰接表,存儲與該節點相鄰的節點,一個鏈表數組
public class Graph Graph(int V) 創建一個含有V個節點但不含邊的無向圖 Graph(In) 從輸入流中讀取一幅圖 int V() 返回圖中有多少個節點 int E() 邊數 addEdge(int v,int w) 添加一條邊 Iterableadj(int v) V節點相鄰的所有頂點 String toString 對象的字符串表示
實現很簡單
package Graph; import In.In; public class Graph { private final int V; private int E; private Bag[] adj; //鄰接表 public Graph(int V){ this.V = V; this.E = 0; adj = (Bag []) new Bag[V]; for(int v = 0;v < V;v++){ adj[v] = new Bag (); } } public Graph(In in){ this(in.readInt()); int E = in.readInt(); for(int i = 0;i < E;i++){ int v = in.readInt(); int w = in.readInt(); addEdge(v,w); } } public int V(){ return V;} public int E(){ return E;} public void addEdge(int v,int w){ adj[v].add(w); adj[w].add(v); E++; } public Iterable adj(int v){ return adj[v]; } }
既然實現了圖這種數據結構,那么接下來可以考慮圖的處理算法了。見下一篇
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/64312.html
摘要:邊僅由兩個頂點連接,并且沒有方向的圖稱為無向圖。用分隔符當前為空格,也可以是分號等分隔。深度優先算法最簡搜索起點構造函數找到與起點連通的其他頂點。路徑構造函數接收一個頂點,計算到與連通的每個頂點之間的路徑。 Algorithms Fourth EditionWritten By Robert Sedgewick & Kevin WayneTranslated By 謝路云Chapter...
這篇講的是連通分量,連通分量是深度優先搜索算法的一個應用。 每進行了一次dfs,就會找到一條連通分量。 定義如下的API public class CC CC(Graph g) 預處理構造函數 boolean connected(int v,in w) v和w連通嗎 int count() 改圖中的連通分量個數 int id(int v) ...
摘要:樹是一副無環連通圖。互不相連的樹組成的集合稱為森林。表示無向圖的數據類型圖的基本操作的兩個構造,得到頂點數和邊數,增加一條邊。該方法不符合第一個條件,上百萬個頂點的圖是很常見的空間不滿足。 四種重要的圖模型: 無向圖(簡單連接) 有向圖(連接有方向性) 加權圖(連接帶有權值) 加權有向圖(連接既有方向性又帶有權值) 無向圖 定義:由一組頂點和一組能夠將兩個頂點相連的邊組成。 特殊:...
摘要:什么是圖前面說完了樹這種數據結構,接下來在看看一種更加復雜的非線性數據結構圖。其實圖這種數據結構比較適合用來存儲我們常用的微信微博好友關系。 1. 什么是圖? 前面說完了樹這種數據結構,接下來在看看一種更加復雜的非線性數據結構——圖。 先看看下面圖這種數據結構的圖片演示吧: showImg(https://img-blog.csdnimg.cn/20190319204147662.p...
摘要:那還有一個重要的問題就是,從到是否存在一條路徑,如果有找出其中最短的那條。最短路徑問題當然這路考慮的是每條邊的都是權值為的情況。解決這個問題的算法就是廣度優先搜索算法下面給出其實現代碼,其中的使用了一個隊列用來保存需要遍歷的頂點。 上一篇講了從一個頂點到另一個頂點是否存在路徑,用的時深度優先搜索。那還有一個重要的問題就是,從s到v是否存在一條路徑,如果有找出其中最短的那條。最短路徑問題...
閱讀 1659·2019-08-30 13:04
閱讀 2208·2019-08-30 12:59
閱讀 1774·2019-08-29 18:34
閱讀 1865·2019-08-29 17:31
閱讀 1260·2019-08-29 15:42
閱讀 3542·2019-08-29 15:37
閱讀 2863·2019-08-29 13:45
閱讀 2775·2019-08-26 13:57