关于邻接表的问题
来源:7-2 图的表示
慕移动9586716
2021-04-11
//bobo老师您好!
// 验证图中是否有从v到w的边
bool hasEdge( int v , int w ){
assert( v >= 0 && v < n );
assert( w >= 0 && w < n );
for( int i = 0 ; i < g[v].size() ; i ++ ) //(1).这里的g[v].size()是指一共有多少条边嘛?
if( g[v][i] == w ) //(2).这里我不能理他这样做的目的是什么?
return true;
return false;
}
(3).老师您能不能给一个小数据量来跑一遍?
写回答
1回答
-
liuyubobobo
2021-04-11
1)
g[v].size() 表示和 v 链接的变有多少个。
2)
g[v][i] == w 说明 v 和 w 是相连的。
3)
我没有特别理解你想要什么数据。任意一个图都可以。
比如:
0-1-2 这个图。三个节点,两条边。你应该使用 hasEdge 可以看到:
hasEdge(0, 1) 返回 true
hasEdge(1, 0) 返回 true
hasEdge(1, 2) 返回 true
hasEdge(2, 1) 返回 true
hasEdge(0, 2) 返回 false
hasEdge(2, 0) 返回 false
继续加油!:)
142021-04-13
相似问题