注意:以下标识符适用于本单元的所有程序。 int n, m; | // n代表结点个数,m代表边的个数(有的教材分别用V、E表示)。 | int G[N][N]; | // 用邻接矩阵存储的图 | int u[M], v[M], w[M]; | // 用边目录存储的图(u是起点,v是终点,w是权) | int first[N], next[M]; | // 用邻接表存储的图(不使用指针) | vector<int> g[N]; | // 用邻接表存储的图(使用矢量) | edge *adj[N]; | // 用邻接表存储的图(使用指针,edge的定义见139页“邻接表”) | const int INF=100000000; | // 不要设置得过大,以防溢出 |
1. 注意,其他的信息学资料用G[j]=0表示边不存在,而《资料》用G[j]=INF表示这条边不存在! 2. 若无特殊说明,邻接表使用edge *adj[N]。 3. 为了保险,开数组时有N>n,M>m。
|