7 6 列出連通集

2021-10-21 06:51:14 字數 1807 閱讀 8780

傳送門

題目描述:

給定乙個有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相關知識點的考察,bfs的實現需要用到佇列這一資料結構,為了**簡便,我們不妨呼叫c++庫函式queue直接完成相關操作。

#include

#include

#define maxsize 11

#define inf 0x3f3f3f3f

int n,e;

int g[11]

[11];

int visited[11]

;typedef

struct

seq,

*seq;

void

init

(seq q)

intisempty

(seq q)

intisfull

(seq q)

intpush

(seq q,

int x)

}int

pop(seq q)

}int

getfront

(seq q)

void

dfs(

int id)

}void

bfs(

int id)}}

}int

main()

for(i=

0;i)\n");

}}memset

(visited,0,

sizeof

(visited));

for(i=

0;i)\n");

}}return0;

}

#include

#include

#include

#include

#define max 11

#define inf 0x3f3f3f3f

using

namespace std;

int n,e;

int visited[max]

;int map[max]

[max]

;void

dfs(

int id)

}void

bfs(

int id)}}

}int

main()

for(i=

0;i)\n");

}}memset

(visited,0,

sizeof

(visited));

for(i=

0;i)\n");

}}return0;

}

7 6 列出連通集

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

7 6 列出連通集

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

7 6 列出連通集 (25 分)

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