#include <iostream>
#include <queue>
using namespace std;
int n,m;
const long edge_maxn=1005;
const long point_maxn=105;
struct node
{
int v,w,next;
}edge[edge_maxn];
int pre[point_maxn];
int Index;
void addEdge(int x,int y,int w)
{
edge[Index].v=y;
edge[Index].w=w;
edge[Index].next=pre[x];
pre[x]=Index++;
}
void Init()
{
memset(pre,-1,sizeof(pre));
Index=1;
int i,x,y,w;
for(int i=0;i<m;i++)
{
scanf("%d%d%d",&x,&y,&w);
addEdge(x,y,w);
}
}
void print()
{
for(int i=1;i<=n;i++)
{
printf("%d\n",i);
for(int j=pre[i];j!=-1;j=edge[j].next )
{
printf("-> %d value is %d\n",edge[j].v,edge[j].w);
}
}
}
int main()
{
while(scanf("%d%d",&n,&m)!=EOF&&(n!=0||m!=0))
{
Init();
print();
}
return 0;
}
图的遍历(数组+邻接表)
最新推荐文章于 2023-02-24 22:02:58 发布