图邻接表数组存储

来源:互联网 发布:日语汉字注音软件 编辑:程序博客网 时间:2024/06/05 04:28

#include<iostream>#include<algorithm>#include<string.h>using namespace std;int cnt = 0 ;int head[100010]; struct st{int u;int v;int w;int next;}edge[100010];void add(int u, int v, int w){edge[cnt].u = u;edge[cnt].v = v;edge[cnt].w = w;edge[cnt].next = head[u];head[u] = cnt++;}int main(){int n,m,u,v,w;memset(head,-1,sizeof(head));cin>>n;for (int i=0; i<n; i++){cin>>u>>v>>w;add(u,v,w);} cin>>m;for (int i=head[m]; i!=-1; i=edge[i].next){cout<<edge[i].u<<"->"<<edge[i].v<<":"<<edge[i].w<<endl; }return 0;}
如果是无向图的话在添加一次add(v,u,w);即可