图的储存(边集数组)

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

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

相关文章推荐

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

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

图的存储结构(十字链表、邻接多重表、边集数组)

原文:http://blog.fishc.com/2535.html 十字链表   邻接表固然优秀,但也有不足,例如对有向图的处理上,有时候需要再建立一个逆邻接表~ 那我们思考...

精选:深入理解 Docker 内部原理及网络配置

网络绝对是任何系统的核心,对于容器而言也是如此。Docker 作为目前最火的轻量级容器技术,有很多令人称道的功能,如 Docker 的镜像管理。然而,Docker的网络一直以来都比较薄弱,所以我们有必要深入了解Docker的网络知识,以满足更高的网络需求。

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

一、邻接矩阵(不多说了)  G[u][v] 二、邻接表                   1、动态链表(指针)      一个数组表头(u)+ struct结点(v),...

7.2图的存储结构(十字链表、邻接多重表、边集数组)

7.2图的存储结构(十字链表、邻接多重表、边集数组)

图的数组(邻接矩阵)存储

#include #include #include #define MAX_NAME 5 /* The largest length of vertex string + 1 */ #def...

连续存储的数组

#include #include //定义一个数据类型 struct Arr { int * pBase; //存储的是数组第一个元素的地址 int len;//数组所能容纳的最大元素的个数 ...

Java中数组的存储与内存分配

Java数组及其内存分配 [日期:2013-03-28] 来源:Linux社区  作者:xiaoxuetu [字体:大 中 小] 几乎所...

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

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

图的存储方法

1.邻接矩阵int E[110][110];E[1][2]=1; E[5][3]=0;2.邻接链表#include #include using namespace std;const int M...

图的存储

今天集中研究了一下图的各种存储,下面是我学习各路牛人博客后,整理的,有的忘记出处了,实在抱歉(还记得的都写下来了) 7.4 图的存储结构 图是无法以数据元素在内存中的物理位置来表示元素之间的关系,...
  • fynjy
  • fynjy
  • 2015-07-15 16:03
  • 457
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

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