簡體   English   中英

Java 中無向無權圖上的 BFS 和 DFS

[英]BFS and DFS on a undirected and unweighed Graph in Java

public class Graph {
 private int V; //Number of vertices
    private int E; // Number of edges
    private ArrayList<Integer>[] adj; 

 public void addEdge(int v, int w) {
        if (!this.adj[v].contains(w)) {
            this.adj[v].add(w);
        }

        if (!this.adj[w].contains(v)) {
            this.adj[w].add(v);
        }
    }
public Graph bfs(int s) {

    }
public Graph dfs(int s) {

    }

我在 java 中創建了 Graph,這樣一個 ArrayList 數組包含附加到另一個頂點的頂點。 我想在這個 Graph 結構上實現 BFS 和 DFS,這樣我就可以從單一來源獲得 DFS/BFS 圖。 任何建議/指南。

以 OOP-with-GC 方式重新實現它 - 每個節點都應該有一組它有邊的節點。 那么這個問題就變得很容易了。 您迭代起始節點的相鄰節點。 對於 DFS,您在每個節點上遞歸。 對於 BFS,你將節點放在一個 Deque 中,並且總是得到 Deque 的尾部。

只需使用紅黑樹來獲得圖的有序遍歷,一旦獲得遍歷,請使用 Math.random() 將所有現有值替換為新值。 確保您使用 SEED= Integer.max_value;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM