图的存储 链式前向星
#include<bits/stdc++.h>
using namespace std;
const int N = 1010;
struct edge
{
int v;
int w;
int ne;
};
edge e[N];
int idx;
int h[N];
int n, m;
int a, b, c;
void add(int a, int b, int c)
{
e[idx] = {b, c, h[a]};
h[a] = idx++;
}
void dfs(int u, int fa)
{
for(int i = h[u]; ~i; i = e[i].ne)
{
int v = e[i].v, w = e[i].w;
if(v == fa) continue;
printf("%d %d %d\n", u, v, w);
dfs(v, u);
}
}
int main()
{
scanf("%d %d", &n, &m);
memset(h, -1, sizeof h);
for(int i = 1; i <= m; i++)
{
scanf("%d %d %d", &a, &b, &c);
add(a, b, c);
add(b, a, c);
}
dfs(1, 0);
return 0;
}