图论---图的存储

news/2024/7/15 20:16:39 标签: 图论

        图的存储一般有三种,分别是邻接矩阵、邻接表和类,以下是三种存储方式的基础模板及相关注释:

邻接矩阵

g[a][b] 存储边a->b的距离

邻接表

// 又叫做链式向前星存储(头插法)
// 首先 idx 是用来对边进行编号的,然后对存图用到的几个数组作简单解释:
// he 数组:存储是某个节点所对应的边的集合(链表)的头结点;
// e  数组:用于访问某一条边指向的节点;
// ne 数组:由于是以链表的形式进行存边,该数组就是用于找到下一条边;
// w  数组:用于记录某条边的权重为多少。
int[] he = new int[N], e = new int[M], ne = new int[M], w = new int[M];
int idx = 0; // 为每一条边进行编号
// 初始化
memset(he, -1, sizeof he);
// 添加一条a到b的边,权重为c
void add(int a, int b, int c) {
    e[idx] = b;
    ne[idx] = he[a];
    he[a] = idx;
    w[idx] = c;
    idx++;
}
// 遍历a的出边
for(int i = he[a]; i != -1; i = ne[i]){
    int j = e[i], v = w[i]; // j为a的出边, v为权重
}

class Edge {
    // 代表从 a 到 b 有一条权重为 c 的边
    int a, b, c;
};
vector<Edge> g;

http://www.niftyadmin.cn/n/5065913.html

相关文章

WSL安装异常:WslRegisterDistribution failed with error: 0xc03a001a

简介&#xff1a;如果文件夹右上角是否都有两个相对的蓝色箭头&#xff0c;在进行安装wsl时&#xff0c;设置就会抛出 Installing WslRegisterDistribution failed with error: 0xc03a001a的异常 历史攻略&#xff1a; 卸载WSL WSL&#xff1a;运行Linux文件 WSL&#xff1…

ChatGPT启蒙之旅:弟弟妹妹的关键概念入门

大家好,我是herosunly。985院校硕士毕业,现担任算法研究员一职,热衷于机器学习算法研究与应用。曾获得阿里云天池比赛第一名,CCF比赛第二名,科大讯飞比赛第三名。拥有多项发明专利。对机器学习和深度学习拥有自己独到的见解。曾经辅导过若干个非计算机专业的学生进入到算法…

腾讯云轻量应用服务器部署(新手图文教程)

腾讯云轻量应用服务器怎么搭建网站&#xff1f;太简单了&#xff0c;轻量服务器选择宝塔Linux镜像&#xff0c;然后在宝塔面板上添加站点&#xff0c;以WordPress建站为例&#xff0c;腾讯云服务器网来详细说下腾讯云轻量应用服务器搭建网站全流程&#xff0c;包括轻量服务器配…

ftell//fopen//fseek//test ok

fopen的使用 如果myfile.txt文件的权限是111&#xff0c; 文件也是可以打开的 #include <stdio.h>int main () {FILE * pFile;long size;//如果myfile.txt文件的权限是111&#xff0c; 文件也是可以打开的pFile fopen ("myfile.txt","rb");if (p…

腾讯云服务器简介和使用流程

腾讯云服务器在云服务器CVM或轻量应用服务器页面自定义购买价格比较贵&#xff0c;但是自定义购买云服务器CPU内存带宽配置选择范围广&#xff0c;活动上购买只能选择固定的活动机&#xff0c;选择范围窄&#xff0c;但是云服务器价格便宜比较省钱。腾讯云服务器网来详细说下腾…

【ShaderLab 碎片边境美式卡通角色_“ospreycaptain“_角色渲染(第三篇)】

ShaderLab 碎片边境次时代_角色渲染 在Standard着色器下的效果 如图:资源分析模型贴图人物身体贴图如下:贴图的命名 如下OspreyCaptain_RAME 如图:OspreyCaptain_RAME R通道:OspreyCaptain_RAME G通道:OspreyCaptain_RAME B通道:OspreyCaptain_RAME A通道:OspreyCaptain…

如何设置远程服务器对本地服务器免密登录

背景 目前需要使用多台服务器进行完全分布式hadoop部署&#xff0c;所以先使用云服务器来记录一下服务器的免密登录 说明 A服务器&#xff1a;本机(10.6.3.226) B服务器&#xff1a;云服务器(47.113.229.18) 实施步骤 1.本地生成密钥(公钥和私钥) ssh-keygen -t rsa2.在A服…