波波老师,您好,问题在问号处。
1
// 向图中添加一个边
void addEdge( int v , int w ){
assert( v >= 0 && v < n );
assert( w >= 0 && w < n );
if( hasEdge( v , w ) )
return;
g[v][w] = true;
if( !directed )
g[w][v] = true;//这行代码表示什么意思?是不是说,纵向的边的编号w,横向的起始顶点的编号v,对应的元素=true,这个true表示相连
m ++;
}2
// 向图中添加一个边
void addEdge( int v, int w ){
assert( v >= 0 && v < n );
assert( w >= 0 && w < n );
g[v].push_back(w);
if( v != w && !directed )//为什么要有v!=w这个判断呢?
g[w].push_back(v);//w表示边,那么g[w]是不是表示这条边对应顶点v?而这个顶点是不是起始顶点呢
m ++;
}