文章出處
#include#include #include using namespace std;#define maxSize 50#define OK 1typedef int VertexType;typedef int EdgeType;typedef struct{ VertexType vexs[maxSize]; EdgeType arc[maxSize][maxSize]; int n;}MGraph;bool visited[maxSize];void CreateMGraph(MGraph &G){ int i, j; cin >> G.n; for (i = 0; i < G.n; i++) { G.vexs[i] = i; } for (i = 0; i < G.n; i++) { for (j = 0; j < G.n; j++) { cin >> G.arc[i][j]; } }}void DFS(MGraph G, int i){ int j; visited[i] = 1; printf("%d ", G.vexs[i]); for (j = 0; j < G.n; j++) { if (G.arc[i][j] == 1 && !visited[j]) { DFS(G, j); } }}void DFSTraverse(MGraph G){ int i; for (i = 0; i < G.n; i++) { visited[i] = 0; } for (i = 0; i < G.n; i++) { if (!visited[i]) { DFS(G, i); } }}int main(){ //freopen("E:\input.txt", "r", stdin); MGraph G; CreateMGraph(G); DFSTraverse(G); printf("\n"); return 0;}
輸入輸出案例input
40 1 0 11 0 0 00 0 0 11 0 1 0
output
0 1 3 2
就愛閱讀www.92to.com網友整理上傳,為您提供最全的知識大全,期待您的分享,轉載請注明出處。
歡迎轉載:http://www.kanwencang.com/bangong/20161116/54002.html
文章列表
全站熱搜