邻接表模版c+


#include<stdio.h>
#include<string.h>
int h[602],b;
struct st
{
int next,v,s;
}st[100000];
void init()
{
b=1;
memset(h,0,sizeof(h));
}
void add(int ne,int v,int s)
{
st[b].v=v;
st[b].s=s;
st[b].next=h[ne];
h[ne]=b++;
/*st[b].v=ne;
st[b].s=0;
st[b].next=h[v];
h[ne]=b++;*/
}
void cx(int x)
{
int i;
printf("%d\n",h[x]);
for(i=h[x];i!=0;i=st[i].next)
{
printf("%d %d %d\n",x,st[i].v,st[i].s);

}
}
int main()
{
int a;
scanf("%d",&a);
init();
while(a--)
{

int m,n,z;
scanf("%d%d%d",&m,&n,&z);
add(m,n,z);

}
cx(1);
return 0;
}

主要是查找从一个点出发到所有点的有路的点。。所以要把前点相同的边连在一起。。。
   

注意!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系我们删除。



 
  © 2014-2022 ITdaan.com 联系我们: