标签:之间 赋值 调用 ref csp bsp 范围 add 图论
在c++中我们应如何表示一张图呢?
表示完成后又应如何调用呢?
1.图的建立
我们有许多方法存住一张图,在csp-s考试范围常用的方法有:
1.邻接矩阵 2.数组模拟链表(前向星) (当然还有许多其他方法)
邻接矩阵理解很简单:
对于一个二维数组 a [i] [j],a [i] [j]的值即为 点 i 到点 j 的边的边权【注释1】。
就是说我们总是将 从i 到 j 的单向边的边权赋给 用以存这个边的二维数组的对应位置。
void add(int start,int end,int length) { len[start][end]=length; len[end][start]=length; return; }
这便是邻接矩阵的存边法,其实就是将i j之间无向边的“长度”权值赋给了len[i] [j]和len[j] [i]。
#注意这里存在两次赋值,仔细观察发现其实是存了两条有向边 i j和j i。【注释2】我们通过构建两条反向有向边达到了模拟无向边的效果。
标签:之间 赋值 调用 ref csp bsp 范围 add 图论
原文地址:https://www.cnblogs.com/rtrtrt/p/12128617.html