这个就是图的大体结构,是由点集合与顶点之间的关系;
无向图就是无方向,有向图就是有方向:
无向;
有向;
在有向图中:
入度——以该顶点为终点的边的数目和 .
出度——以该顶点为起点的边的数目和 .
度数为奇数的顶点叫做奇点,度数为偶数的点叫做偶点。
度:等于该顶点的入度与出度之和。
图的储存:
1.邻接矩阵(二维数组)
2邻接表(不懂)
邻接矩阵:代码书写简单,找邻接点慢
采用二维数组的静态存储结构
一般点数|v|小于 等于5000的时候,用邻接矩阵。
邻接表:代码书写较复杂,找邻接点快
采用动态存储结构(指针或用数组模拟)
一般点数|v|大于等于5000,并且边得个数不是很多的时候,用邻接表,并且现在一般都是用数组来模拟。
数组模拟链表的速度会快一点,并且能避免一些错误。
编历(不会)
传递闭包
就是判断是否通路;就像“麦田上的环”。
核心:
for (int k=1;k<=n;k++)
for (int i=1;i<=n;i++)
for (int j=1;j<=n;j++)
can[ i ][ j ]=can[ i][j] || ( can[ i][ k ] && can[ k ][ j ])