7 6 列出連通集 25分

2021-10-02 11:00:22 字數 1563 閱讀 4216

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

輸入格式:

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

輸入樣例:

8 60 7

0 12 0

4 12 4

3 5輸出樣例:

dfs類似於先序遍歷,採用遞迴實現;bfs類似於層序遍歷採用佇列實現.

#include

#include

#define maxn 10

using

namespace std;

int nv, ne;

int visited[maxn]

, graph[maxn]

[maxn]

;void

creategraph()

}void

dfs(

int i)}}

void

bfs(

int i)}}

}int

main()

"<< endl;}}

memset

(visited,0,

sizeof

(visited));

for(

int i =

0; i < nv; i++)"

<< endl;}}

return0;

}

#include

#include<

string

.h>

#include

#define maxn 10

using namespace std;

int nv, ne;

queue<

int>q;

int visited[maxn]

, graph[maxn]

[maxn]

;void creategraph()

}void dfs

(int i)

}void bfs

(int i)

} cout <<

" "<< q.

front()

; q.

pop();

}}intmain()

"<< endl;}}

memset

(visited,0,

sizeof

(visited));

for(

int i =

0; i < nv; i++)"

<< endl;}}

return0;

}

1.memset的用法參考:memset的用法,在這個題中用於對陣列visited的初始化.

2.stl中的佇列的使用有些地方有些忘記了,需要複習.

3.說實話,我感覺這兩個版本的**是一樣的,只是用stl的佇列替換c語言的佇列,好吃就是複習了一下stl的佇列╮(╯▽╰)╭.

7 6 列出連通集 (25 分)

題目鏈結 這個題一開始沒仔細看結果,就覺得是乙個並查集,寫出來之後只能過乙個點,然後才仔細去看了看樣例,結果發現其實陽曆都過不去,也不知道最後乙個點怎麼過的 這個題就是按照他說的來,乙個深搜乙個廣搜。include include include include using namespace st...

7 6 列出連通集 (25 分)

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

7 6 列出連通集 25分

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