constint N = 1e2 + 10; int g[N][N]; //如果i,j顶点之间有边 g[i][j]=1 //如果i,j顶点之间没边 g[i][j]=0
intmain(){ int n,m; cin >> n >> m; //控制台输入 for(int i=1;i<=m;i++){ int u,v; cin >> u >> v; g[u][v] = g[v][u] = 1; } return0; }
找到指定点的所有邻接点
1 2 3 4 5 6 7
int v; cin >> v; int n = 4; for (int i = 1; i <= n; i++) { if (g[v][i] == 1) {//i是v的邻接点 cout << i << " "; } }
找到邻接矩阵所有的边
1 2 3 4 5 6 7 8 9
int n = 4; for (int v = 1; v <= n; v++) {//固定v for (int u = 1; u <= n; u++) {//找到v的所有邻接点u if (g[u][v] == 1) {//v是u的邻接点 printf("(%d,%d) ", u, v); } } cout << endl; }
constint N = 1e2 + 10; vector<int> g[N]; //g[i]是一个vector,存储了i号点所有邻接点
intmain(){
int n, m; cin >> n >> m;//n个顶点 m条边 //邻接m条边,每条边遍历一遍 for (int i = 1; i <= m; i++) { int u, v; cin >> u >> v;//u-v之间有边 g[u].push_back(v); g[v].push_back(u); //无向图 //g[u].push_back(v); //有向图 } return0;
constint N = 1e2 + 10; vector<int> g[N];//g[i]是一个vector,存储了i号点所有邻接点
intmain(){
int n, m; cin >> n >> m;//n个顶点m条边 //邻接m条边 for (int i = 1; i <= m; i++) { int u, v; cin >> u >> v;//u-v之间有边 g[u].push_back(v); g[v].push_back(u); //无向图 //g[u].push_back(v); //有向图 }
//找出图中所有的边 for (int i = 1; i <= n; i++) {//固定i //找到顶点i的所有邻接点 for (int j = 0; j < g[i].size(); j++) { int v = g[i][j]; printf("(%d,%d) ", i, v); } cout << endl; } return0;