图的储存(边集数组)

原创 2016年08月29日 19:18:45

边集数组

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

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时代表临边结束相当于每次都是把边插入到链表的头部的

版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

图的存储结构-邻接多重表、边集数组

图的存储结构:   如果我们在无向图的应用中,关注的重点是顶点的话,那么邻接表是不错的选择,但是我们关注的是边的操作,比如对已经访问过的边做标记,或者删除某一条边等操作,邻接表就显得不那么方便了。...

数据结构之图的存储表示(邻接矩阵、邻接表和边集数组)

图的存储结构相比线性表与树而言,更加复杂。图不可能用简单的顺序存储结构来表示,这是一个很困难的问题。所幸,一般有三种存储结构:邻接矩阵、邻接表和边集数组。邻接矩阵邻接矩阵是表示顶点之间相邻关系的矩阵。...

关于图的存储方法 (静态邻接表、前向星、边集数组)

一、邻接矩阵(不多说了)  G[u][v] 二、邻接表                   1、动态链表(指针)      一个数组表头(u)+ struct结点(v),相链,若有权值等信息再在结点里...
  • tclh123
  • tclh123
  • 2011年08月07日 17:34
  • 4853

【图论】【单源最短路】【dijikstra】pascal+邻接矩阵/边集数组

图论 单源最短路 dijikstra pascal 邻接矩阵 边集数组

十字链表 、邻接多重表 、边集数组

0

已知两个数组其中一个为另一个数组的子集,求补集数组

在实际应用中,有时候会遇到一个数组,其是由两部分数组组成,其中一部分已经知道而要求出另一部分,可以用转成List中的removeAll方法,如果用一个算法去实现应该怎么做呢?这里给大家分享一个自己写的...

arm指令集数据存取堆栈指令分析

  • 2015年06月03日 20:22
  • 1.53MB
  • 下载

建模数据(一 处理关系集数据)

应用级的Join操作(Application-side Join)我们可以(部分)在应用中模拟关系数据库的join操作。例如,索引 users 和他们的 blog 文章。在关系世界中,我们会这样做:P...

并查集数据结构java源码

在网上看到一个题目: 给定一个字符串的集合,格式如:。要求将其中交集不为空的集合合并,要求合并完成的集合之间无交集,例如上例应输出。 (1) 请描述你解决这个问题的思路; (2) 给出主要的处...
  • abcd_d_
  • abcd_d_
  • 2014年10月20日 20:52
  • 1642
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:图的储存(边集数组)
举报原因:
原因补充:

(最多只允许输入30个字)