波波老师,您好,问题在问号处。
1
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | // 向图中添加一个边 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
1 2 3 4 5 6 7 8 9 10 11 12 | // 向图中添加一个边 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 ++; } |