建图方法(邻接矩阵 链式前向星)更新ing

/* 建 图 int u, v, w;*/
memset(e,0x3f,sizeof(e)); For(i,1,N) e[i][i] = 0; while(M--)
{
scanf("%d%d%d",&u,&v,&w); if(e[u][v] > w) e[u][v] = e[v][u] = w;
}
前向星建图

开辟空间
int first[顶点数], tot, N;

struct Edge
{
    int v, w, next;
} e[边数];	//双向边,记得开两倍

建图
void add(int u, int v, int w)
{
    e[tot].v = v;
    e[tot].w = w;
    e[tot].next = first[u];
    first[u] = tot++;
}

int main()
{
    tot = 0;
    memset(first,-1,sizeof(first));
    while(M--) //M 条边
    {
        scanf("%d%d%d",&u,&v,&w);
        add(u,v,w);	//双向图 再反着加一条
    }
}

 

全部评论

相关推荐

迟缓的斜杠青年巴比Q了:简历被投过的公司卖出去了,我前两天遇到过更离谱的,打电话来问我有没有意向报班学Java学习,服了,还拿我学校一个学长在他们那报班学了之后干了华为OD当招牌
点赞 评论 收藏
分享
04-27 08:59
常州大学 Java
牛客139242382号:《两门以上汇编语言》
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务