码迷,mamicode.com
首页 > 其他好文 > 详细

邻接表

时间:2014-05-17 22:29:48      阅读:468      评论:0      收藏:0      [点我收藏+]

标签:style   blog   class   code   c   java   

除了邻接矩阵外储存图的另一种方法,适用于稀疏图。

用一个有n结点,p条边的有向图,用a[i],b[i],l[i]分别表示第i条边的起点,终点,权值。first[x]表示x号结点连出的第一条边,next[i]表示与第i条边是同一个结点连出的下一条边,如果为0则表示已经没有下一条了

初始化:用last[x]表示第x号结点目前已读入的最后一条边,方便操作

bubuko.com,布布扣
void init()
{
    for (int i=1;i<=p;cin>>a[i]>>b[i]>>l[i],i++)
        if (last[a[i]]==0)
            first[a[i]]=last[a[i]]=i;
        else
            last[a[i]]=next[last[a[i]]]=i;
}
bubuko.com,布布扣

调用:对于第x号结点,调用它连出的每一条边和每一个点

bubuko.com,布布扣
void print(int x)
{
    int u=first[x];
    while (u!=0)
    {
        cout<<b[u]<<endl;//输出终点
        cout<<l[h]<<endl;//输出权值
        u=next[u];//前往下一条边
    }
}
bubuko.com,布布扣

 

邻接表,布布扣,bubuko.com

邻接表

标签:style   blog   class   code   c   java   

原文地址:http://www.cnblogs.com/zkx06111/p/3734528.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!