SPFA中 正逆邻接表的建立

正邻接表的建立:
先定义一个结构体:
struct node
{
int r,v,w,next;
}Map[];
每输入一组数据 就通过Add函数加入到邻接表中,上图已经说得很明白了,结合着下面的代码备注我认为应该不难理解。
void Add(int u,int v,int w)
{
Map[k].u=u;
Map[k].v=v;
Map[k].w=w;
Map[k].next=a[u];//a[u]之前可能有值,为了防止数据的丢失,我们将当前a[U]的值存进Map[k].next中,应为一个k值只对应一个next,所以之前a[u]的值可以得到保存。
a[u]=k;//更新当前a[u]的值//a[]的初始值为-1.
}
下面再结合一组数据进行进一步说明:
u v w
1 2 10
2 1 60
1 3 20
3 4 10
2 4 5
4 1 50
第一步Add(1,2,10)
此时 Map[1].u=1 Map[1].v=2 Map[1].w=10 Map[1].next=-1 a[1]=1;
在第三步Add(1,3,20)时
Map[3].u=1 Map[3].v=3 Map[3].w=20 再次之前a[u]的值为1,u=1,为了防止丢失,所以Map[3].next=a[1]=1,然后a[1]更新为3.
同理第二步a[2]第一次更新时为2,在第四则更新为a[2]=4,Map[4].next=2. 下面说一下逆邻接表的建立:
如果正邻接表的建立,你看懂了,那么逆邻接表的建立就很容易明白了,下面只贴出代码喽~ void Add(int u,int v,int w)
{
Map[k].u=u;
Map[k].v=v;
Map[k].w=w;
Map[k].next=a[v];
a[v]=k;
}
SPFA中 正逆邻接表的建立的更多相关文章
- ACM/ICPC 之 最短路-SPFA+正逆邻接表(POJ1511(ZOJ2008))
求单源最短路到其余各点,然后返回源点的总最短路长,以构造邻接表的方法不同分为两种解法. POJ1511(ZOJ2008)-Invitation Cards 改变构造邻接表的方法后,分为两种解法 解法一 ...
- vector 邻接表的建立(好笨啊,才懂,可能太困了吧)。。
原创,未经允许不得转载. 图的建立有两种,邻接矩阵和邻接表. 邻接矩阵适用于图较为密集,(稀疏图太浪费存储空间了),图如果较为稀疏,则使用邻接表为宜,dijkstra算法就是以邻接表为基础的. 有向无 ...
- 数据结构学习笔记05图 (邻接矩阵 邻接表-->BFS DFS、最短路径)
数据结构之图 图(Graph) 包含 一组顶点:通常用V (Vertex) 表示顶点集合 一组边:通常用E (Edge) 表示边的集合 边是顶点对:(v, w) ∈E ,其中v, w ∈ V 有向边& ...
- 图->存储结构->邻接表
文字描述 邻接表是图的一种链式存储结构.在邻接表中,对图中每个顶点建立一个单链表,第i个单链表的结点表示依附顶点vi的边(对有向图是指以顶点vi为尾的弧).单链表中的每个结点由3个域组成,其中邻接点域 ...
- HDOJ 2544 最短路(最短路径 dijkstra算法,SPFA邻接表实现,floyd算法)
最短路 Time Limit: 5000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Submis ...
- POJ 3013 SPFA算法,邻接表的使用
Big Christmas Tree Time Limit: 3000MS Memory Limit: 131072K Total Submissions: 19029 Accepted: 4 ...
- SPFA&邻接表 PASCAL
题目来自CODE[VS]-->热浪 1557 热浪 时间限制: 1 s 空间限制: 256000 KB 题目等级 : 钻石 题目描述 Description 德克萨斯纯朴的民眾们这个 ...
- Invitation Cards(邻接表+逆向建图+SPFA)
Time Limit: 8000MS Memory Limit: 262144K Total Submissions: 17538 Accepted: 5721 Description In ...
- 【算法系列学习】SPFA邻接表最短路 [kuangbin带你飞]专题四 最短路练习 F - Wormholes
https://vjudge.net/contest/66569#problem/F 题意:判断图中是否存在负权回路 首先,介绍图的邻接表存储方式 数据结构:图的存储结构之邻接表 邻接表建图,类似于头 ...
随机推荐
- 《JS权威指南学习总结--3.8类型转换》
JS数据类型转换方法主要有三种: 转换函数.强制类型转换.利用js变量弱类型转换. 一.转换函数 parseInt()和parseFloat()两个转换函数. ...
- apt-get 总结
转自: apt-get 总结 1.apt-get install <package_name> install a new package. 2.apt-get build-dep < ...
- hdu_5791_Two(DP)
题目链接:hdu_5791_Two 题意: 给你两串数列,问你相同的子序列有多少个,要注意,可以重复,比如1 和1 1 1 ,相同的子序列为3个 题解: 就和求最长公共子序列差不多,只不过要全部加起来 ...
- 第一个WebAPI项目
(1)新建一个ASP.NET MVC项目,取名为:MyMvcWebAPIDemo,项目类型选择WebAPI. (2)在Models中新增一个类,取名为:Product,作为我们要测试的实体模型. ...
- Entity Framework技巧系列之二 - Tip 6 - 8
提示6. 如何及何时使用贪婪加载 什么时候你需要使用贪婪加载? 通常在你的程序中你知道对查询到的实体将要进行怎样的操作. 例如,如果你查询一个订单以便为一个客户重新打印,你知道没有组成订单的项目即产品 ...
- iOS:UIWebView scrollView 的分页滑动问题
最近在弄一个native webview+html的项目,感觉这种尝试还是挺不错的,特被是适合内容类app.如杂志.电子书等.其实native搭的就是一个框架,主体还是在html的内容上,所以花在ht ...
- TOMCAT 优化设置
增加JVM堆内存大小修复JRE内存泄漏线程池设置压缩数据库性能调优Tomcat本地库 第1步 – 提高JVM栈内存Increase JVM heap memory 你使用过tomcat的话,简单的说就 ...
- ecshop 去版权(前台)
该偏文章模板堂搜集总结,包括ecshop前台版权,ecshop后台版权,一个都不留,干干净净,推荐收藏 一.去掉网页标题 Powered by ECShop 打开includes/lib_main.p ...
- java实现类似qq的窗口对聊
Swing实现界面,socket实现通信 package com.learn.talk; import java.awt.BorderLayout; import java.awt.Dimension ...
- table边框设置
一.表格的常用属性基本属性有:width(宽度).height(高度).border(边框值).cellspacing(表格的内宽,即表格与tr之间的间隔). cellpadding(表格内元素的间隔 ...