資料結構acm 求解連通分量個數

2021-09-04 05:10:00 字數 1148 閱讀 7430

問題 b: ds_7.2 求解連通分量個數(by yan)

從鍵盤接收圖的頂點集,關係集,建立無向圖。

第一行依次輸入圖的頂點個數n,關係個數k,以空格隔開。頂點個數<=20

第二行依次輸入頂點值,型別為字元。

接下去有k行,每行為兩個字元 u 和 v,表示節點u 和 v 連通。格式為【uv】,中間不用空格間隔。

計算連通分量個數並輸出。

輸出乙個整數,表示連通分量個數。

6 7

abcdef

abae

bccd

dadb

ec

#include #include #include #define maxvex 20

typedef struct sqstacksqqueue;

typedef struct

adjmatrix;

void create(adjmatrix *g)

} getchar();

// printf("請輸入有向圖中%d個頂點:\n",g->vexnum);

for(i = 1;i<=g->vexnum;i++)

getchar();

// printf("請輸入有向圖的%d條邊",g->arcnum);

for(k = 0;karcnum;k++)

}/*初始化圖的遍歷陣列*/

void initialise(adjmatrix *g)

}/*深度優先*/

void dfs(adjmatrix *g,int vo)

} }int firstadj(adjmatrix *g,int vo)

} return -1;

}int nextadj(adjmatrix *g,int vo,int w)

} return -1;

}/*廣度優先*/

void bfs(adjmatrix *g,int vo)

w = nextadj(g,vo,w);

// printf("%d",w);

} }}int main(void)

} printf("%d",count);

return 0;

}

資料結構實驗 連通分量個數

在無向圖中,如果從頂點vi到頂點vj有路徑,則稱vi和vj連通。如果圖中任意兩個頂點之間都連通,則稱該圖為連通圖,否則,稱該圖為非連通圖,則其中的極大連通子圖稱為連通分量,這裡所謂的極大是指子圖中包含的頂點個數極大。例如 乙個無向圖有5個頂點,1 3 5是連通的,2是連通的,4是連通的,則這個無向圖...

資料結構實驗 連通分量個數

在無向圖中,如果從頂點vi到頂點vj有路徑,則稱vi和vj連通。如果圖中任意兩個頂點之間都連通,則稱該圖為連通圖,否則,稱該圖為非連通圖,則其中的極大連通子圖稱為連通分量,這裡所謂的極大是指子圖中包含的頂點個數極大。例如 乙個無向圖有5個頂點,1 3 5是連通的,2是連通的,4是連通的,則這個無向圖...

資料結構實驗 連通分量個數

time limit 1000ms memory limit 65536k 有疑問?點這裡 在無向圖中,如果從頂點vi到頂點vj有路徑,則稱vi和vj連通。如果圖中任意兩個頂點之間都連通,則稱該圖為連通圖,否則,稱該圖為非連通圖,則其中的極大連通子圖稱為連通分量,這裡所謂的極大是指子圖中包含的頂點個...