扬清疯

平淡生活;自由生存

图的储存(边集数组)

边集数组

介绍一种《算法入门经典》上的图的储存方式,边集数组+数组链表
先上代码

struct Edge{
    int from,to,w;
};
int first[MAX_V];
int next[MAX_E];

void init()
{
    memset(first,-1,sizeof(first));
    memset(next,-1,sizeof(next));
}

void read_edge(int u,int v,int w)
{
    static int id = 0;
    edges[id].from = u;edges[id].to = v;edges[id].weight =w;

    next[id] = first[u];
    first[u] = id++;

}

first数组里面储存的是顶点u的第一条边,不过这和输入顺序是相反的,next中存放的是第i条边的下一条边,值为-1时代表临边结束相当于每次都是把边插入到链表的头部的

阅读更多

扫码向博主提问

去开通我的Chat快问

dylan_frank

非学,无以致疑;非问,无以广识
  • 擅长领域:
版权声明:本文为博主原创文章,转载请注明出处,欢迎转载。 https://blog.csdn.net/Dylan_Frank/article/details/52355803
个人分类: 算法总结
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!
关闭
关闭