C++图论算法——图的储存方式
使用二维数组邻接矩阵储存图
无向图:
图G
定义图G[101][101],G[i][j]的值表示从结点vi到vj是否有边或弧,若有,取值为1或权值,若无,则取值为0或∞。以下是图G用邻接矩阵表示的列表:
| 结点 | A | B | C | D |
| A | 0 | 1 | 1 | 1 |
| B | 1 | 0 | 0 | 1 |
| C | 1 | 0 | 0 | 1 |
| D | 1 | 1 | 1 | 0 |
有向图:
图G(无权值)
图G(有权值)
定义图G[101][101],G[i][j]的值表示从结点vi到vj是否有边或弧,若有,取值为1或权值,若无,则取值为0或∞。以下是图G用邻接矩阵表示的列表:
| 结点 | A | B | C | D |
| A | ∞ | 1 | 1 | ∞ |
| B | ∞ | ∞ | ∞ | ∞ |
| C | ∞ | ∞ | ∞ | 1 |
| D | ∞ | 1 | ∞ | ∞ |
| 结点 | A | B | C | D |
| A | ∞ | 10 | 3 | ∞ |
| B | ∞ | ∞ | ∞ | ∞ |
| C | ∞ | ∞ | ∞ | 6 |
| D | ∞ | 5 | ∞ | ∞ |
#include <iostream>
#include <cstring>
using namespace std; double G[101][101];
int main(){
int u,v,t,n,m; // 结点u到结点v的节点值为t
cin >> n;
for (int i = 1;i <= n;i++){
for (int j = 1;j <= n;j++){
G[i][j] = 0x7fffffff; // 初始化为无穷大
}
}
// 或者使用memset(G,0x7fffffff,sizeof(G))来初始化
/*
若是int类型数组,则采用memset(G,0x7f,sizeof(G)))
0x7fffffff表示无穷大,若是无向图,那么要写成memset(G,0,sizeof(G))
也可以定义成memset(G,oxaf,sizeof(G)),全都定义成很小的数。
*/
cin >> m;
for (int i = 1;i <= m;i++){
cin >> u >> v >> t;
G[u][v] = t;G[v][u] = t; // 邻接矩阵的值
}
// 输出
for (int i = 1;i <= n;i++){
for (int j = 1;j <= n;j++){
cout << G[i][j] << " ";
}
cout << endl;
}
return 0;
}
这是定义邻接矩阵的代码,大家可以根据需要查看注释修改代码。
C++图论算法——图的储存方式的更多相关文章
- python 数据结构之图的储存方式
参考链接:https://blog.csdn.net/u014281392/article/details/79120406 所描述的图的结构为: 下面介绍不同的储存方式,我想不必详细分别是每个名称都 ...
- 图论算法(一)存图与STL第六弹——vector容器
图论算法(一)存图 我发现我的博客阅读量贼低,问小伙伴们,ta们都说这些博客太长了QAQ! 今天来个短亿点的(也短不了多少……) 进入正题,图论究竟是什么? 图论就是给你一张图,让你在这张图上进行各种 ...
- NOIp 图论算法专题总结 (1):最短路、最小生成树、最近公共祖先
系列索引: NOIp 图论算法专题总结 (1) NOIp 图论算法专题总结 (2) NOIp 图论算法专题总结 (3) 最短路 Floyd 基本思路:枚举所有点与点的中点,如果从中点走最短,更新两点间 ...
- 图论算法-最小费用最大流模板【EK;Dinic】
图论算法-最小费用最大流模板[EK;Dinic] EK模板 const int inf=1000000000; int n,m,s,t; struct node{int v,w,c;}; vector ...
- 图论算法-网络最大流【EK;Dinic】
图论算法-网络最大流模板[EK;Dinic] EK模板 每次找出增广后残量网络中的最小残量增加流量 const int inf=1e9; int n,m,s,t; struct node{int v, ...
- 【WIP_S9】图论算法
创建: 2018/06/01 图的概念 有向边 有向图 无向边 无向图 点的次数: 点连接的边的数量 闭路: 起点和重点一样 连接图: 任意两点之间都可到达 无闭路有向图: 没有闭路的有向图 森林: ...
- 图论算法->最短路
求最短路算法,有Floyd,dijkstra,Bellmanford,spfa等诸多高级算法.优化方法也是层出不穷. 我们不妨分析一下各算法的使用特点(可能不准确 1.Floyd算法 复杂度O(n³) ...
- 负载均衡算法,轮询方式 大话设计模式之工厂模式 C#
负载均衡算法,轮询方式 2018-04-13 17:37 by 天才卧龙, 13 阅读, 0 评论, 收藏, 编辑 学无止境,精益求精 十年河东,十年河西,莫欺少年穷 学历代表你的过去,能力代表你的现 ...
- 关系型数据库与HBase的数据储存方式差别
现在Bigtable型(列族)数据库应用越来越广,功能也非常强大. 可是非常多人还是把它当做关系型数据库在使用,用原来关系型数据库的思维建表.存储.查询. 本文以hbase举例讲述数据模式的变化. 传 ...
随机推荐
- Codeforces Global Round 11 C. The Hard Work of Paparazzi (DP)
题意:有\(r\)X\(r\)的网格图,有\(n\)位名人,会在\(t_i\)时出现在\((x_i,y_i)\),如果过了\(t_i\)名人就会消失,从某一点走到另外一点需要花费的时间是它们之间的曼哈 ...
- 二进制安装kubernetes(六) kube-proxy组件安装
Kube-Proxy简述 参考文献: https://ywnz.com/linuxyffq/2530.html 运行在每个节点上,监听 API Server 中服务对象的变化,再通过管理 IPtabl ...
- InstallShield 2013 Limited Edition for Visual Studio
新建打包项目后,解决方案资源管理器中的结构如下: Project Assistant界面如下: 在Project Assistant中按照步骤创建打包项目: 1.Application Informa ...
- JVM学习路线
JVM探究 请你谈谈你对JVM的理解? java8虚拟机和之前的变化更新? 什么是OOM,什么是栈溢出StackOverFlowError?怎么分析? JVM的常用调优参数有哪些? 内存快照如何抓取, ...
- Install wx
Ubuntu 16.04: 由于是PY交易, 实际上是安装wxPython: pip install -U \ -f https://extras.wxpython.org/wxPython4/ext ...
- Spring Cloud Alibaba+Nacos搭建微服务架构
1. Spring Cloud Alibaba 简介 Spring Cloud Alibaba是阿里巴巴为分布式应用提供的一站式解决方案,能够更方便快捷地搭建分布式平台,nacos拥有着替换eu ...
- Angular Learning Paths
Angular Learning Paths Angular Expert refs https://app.pluralsight.com/search/?q=angular xgqfrms 201 ...
- Android Studio & zh-Hans
Android Studio & zh-Hans https://developer.android.com/studio?hl=zh-cn https://developer.android ...
- how to create a ring progress bar in web skills
how to create a ring progress bar in web skills ring progress bar & circle progress bar canvas j ...
- 2020 web developer roadmap
2020 web developer roadmap https://github.com/kamranahmedse/developer-roadmap https://roadmap.sh/ ht ...