C++之路进阶——边表
边表:利用边的关系来表示一个图。
用到数组:
head//head[i]表示从i点出发的第一条边的编号;
next[i]//与第i条边起点相同的下一条边的编号;
a[i]//第i条边的终点;
val[i]//第i条边的权值;
建立边表:
void add(int u,int v,int c)//u表示起点v表示终点c表示由u到v的权值
{
size++//边的编号加一;
next[size]=head[u]//将u点出发的原第一条边的编号改为新边的下一条边的编号;
head[u]=size;//把由u点出发的第一条边改为刚加入的边的编号;
a[i]=v//第i条边的终点为v;
val[i]=c;//第i条边的权值为c;
}
//在边表当中插入元素,实在边表最开始添加的。
利用边表遍历图的由u点出发的所有边:
for(int i=head[u];~i;i=next[i])//next数组相当于指针,连接起点相同的个个点。
图片解释:
C++之路进阶——边表的更多相关文章
- js进阶 14-8 表单序列化函数serializeArray()和serialize()的区别是什么
js进阶 14-8 表单序列化函数serializeArray()和serialize()的区别是什么 一.总结 一句话总结:两者都是对表单进行序列化,serializeArray()返回的是json ...
- Python进阶----多表查询(内连,左连,右连), 子查询(in,带比较运算符)
Python进阶----多表查询(内连,左连,右连), 子查询(in,带比较运算符) 一丶多表查询 多表连接查询的应用场景: 连接是关系数据库模型的主要特点,也是区别于其他 ...
- 6.MySQL优化---高级进阶之表的设计及优化
转自互联网整理. 优化之路高级进阶——表的设计及优化 优化①:创建规范化表,消除数据冗余 数据库范式是确保数据库结构合理,满足各种查询需要.避免数据库操作异常的数据库设计方式.满足范式要求的表,称为规 ...
- C++之路进阶——优先队列优化最短路径算法(dijkstra)
一般的dijkstra算法利用贪心的思想,每次找出最短边,然后优化到其他点的的距离,我们还采用贪心思路,但在寻找最短边进行优化,之前是双重for循环,现在我们用优先队列来实现. 代码解释: //样例程 ...
- day 48 ORM 进阶 多表连接 创建 以及 html模板继承
多表的一对多创建 多表的多对多创建 多表的一对多修改 多表的多对多修改 前情提要: 最近认识了不少大佬,大佬开着保时捷. .一顿狂奔..我连车尾灯都看不到.. 本次内容 ORM 的多表链接 查 ...
- C++之路进阶codevs1269(匈牙利游戏)
1269 匈牙利游戏 2012年CCC加拿大高中生信息学奥赛 时间限制: 1 s 空间限制: 128000 KB 题目等级 : 钻石 Diamond 题目描述 Description ...
- C++之路进阶——codevs2439(降雨量)
2439 降雨量 2007年省队选拔赛四川 时间限制: 1 s 空间限制: 64000 KB 题目等级 : 大师 Master 题目描述 Description 我们常常会说这样的话 ...
- python之路--MySQL多表查询
一 介绍 我们在写项目的时候一般都会建一个数据库,数据库里面会存很多的表,不可能把所有的数据都放在一张表里,因为分表来存数据节省空间,数据的组织结构更清晰,解耦和程度更高,但是这些表本质上还不是一个整 ...
- python之路--MySQl单表查询
一. 关键字的执行优先级(重点) from where group by having # 使用是要放在group by 后面而且前面必须有group by select distinct # 去重 ...
随机推荐
- Groovy 在eclipse中的使用
今天在写Groovy脚本的时候发现一个问题.如下图,element的elementIterator()方法不能智能显示,只能手动输入.而在eclipse中如果类a没有方法a,那么你是用"cl ...
- USBDongle及Btool使用说明
BLE 模块可使用开发套件中的 USB Dongle 模拟手机APP配合Btool.exe 进行蓝牙通讯测试. >连接 BLE 模块 USB Dongle 和模块的连接是通讯的基础,扫描连接的操 ...
- 蓝牙的HFP协议笔记
1.概述 HFP(Hands-free Profile),可以让蓝牙设备可以控制电话,如接听.挂断.拒接.语音拨号等,拒接.语音拨号要视蓝牙耳机及电话是否支持. HFP定义了音频网关(AG)和 ...
- MVC HTML辅助类常用方法记录
(1)@Html.DisplayNameFor(model => model.Title)是显示列名, (2)@Html.DisplayFor(modelItem => item.Titl ...
- C++ 自动指针 共享指针
#include <iostream> #include <string> #include <memory> class Item { public: Item( ...
- Maven实战(三)Eclipse构建Maven项目
1. 安装m2eclipse插件 要用Eclipse构建Maven项目,我们需要先安装meeclipse插件 点击eclipse菜单栏Help->Eclipse Marketplac ...
- 将Excel导入SQL Server 只能导入数字,其他数据变为NULL怎么解决?
先新建一个TXT文件,把数据粘贴进去 再新建一个Excel文件,在菜单栏中选Data再选From Text 找到txt文件,点import 一定要选Text 点Finish,点OK. 接下来在往数据库 ...
- js跳转方法
很有用的东西,参考自http://www.zhuoda.org/lunzi/66097.html 第一种 <script language="javascript" type ...
- c#中的linq二
c#中的linq二 using System; using System.Collections.Generic; using System.Linq; using System.Text; us ...
- shell脚本编程-处理用户输入
命令行参数 命令行参数:允许在运行脚本时向命令行添加数据值 如:$ ./addem 10 30 读取参数 bash shell会将一些称为位置参数的特殊变量分配给命令行输入的所有参数,甚至包括shel ...