列出連通集

2021-10-08 06:41:11 字數 1346 閱讀 2149

7-6 列出連通集 (25 分)

給定乙個有n個頂點和e條邊的無向圖,請用dfs和bfs分別列出其所有的連通集。假設頂點從0到n−1編號。進行搜尋時,假設我們總是從編號最小的頂點出發,按編號遞增的順序訪問鄰接點。

輸入第1行給出2個整數n(0按照""的格式,每行輸出乙個連通集。先輸出dfs的結果,再輸出bfs的結果。

8 6

0 70 1

2 04 1

2 43 5

#include using namespace std;

int n, e;

int a[101][101] = ;

int vis[101] = ;

int vbs[101] = ;

void dfs(int x)

}if(!f)

}cout << "}" << endl;

} void bfs(int x)}}

cout << "}" << endl;

}int main()

for(int i = 0; i < n; i++)

for(int i = 0; i < n; i++)

return 0;

}

下面給出遞迴解法(上面的bfs是偽遞迴)

1 #include 2 using namespace std;

3 int n, e;

4 int a[101][101] = ;

5 int vis[101] = ;

6 int vbs[101] = ;

7 void dfs(int x)

14 }

15 }

16 void bfs(int x)

27 }

28 cout << " " << temp;

29 myque.pop();

30 }

31 cout << " }";

32 cout << endl;

33 }

34 int main()

41 for(int i = 0; i < n; i++)";

47 cout << endl;

48 }

49

50 }

51 for(int i = 0; i < n; i++)

56 }

57 return 0;

58 }

列出連通集

給定乙個有n個頂點和e條邊的無向圖,請用dfs和bfs分別列出其所有的連通集。假設頂點從0到n 1編號。進行搜尋時,假設我們總是從編號最小的頂點出發,按編號遞增的順序訪問鄰接點。輸入第1行給出2個整數n 0按照 的格式,每行輸出乙個連通集。先輸出dfs的結果,再輸出bfs的結果。純dfs和bfs的練...

列出連通集

7 15 列出連通集 25 分 給定乙個有n個頂點和e條邊的無向圖,請用dfs和bfs分別列出其所有的連通集。假設頂點從0到n 1編號。進行搜尋時,假設我們總是從編號最小的頂點出發,按編號遞增的順序訪問鄰接點。輸入格式 輸入第1行給出2個整數n 0輸出格式 按照 的格式,每行輸出乙個連通集。先輸出d...

列出連通集

給定乙個有n個頂點和e條邊的無向圖,請用dfs和bfs分別列出其所有的連通集。假設頂點從0到n 1編號。進行搜尋時,假設我們總是從編號最小的頂點出發,按編號遞增的順序訪問鄰接點。輸入第1行給出2個整數n 0 按照 的格式,每行輸出乙個連通集。先輸出dfs的結果,再輸出bfs的結果。8 6 0 70 ...