采纳答案成功!
向帮助你的同学说点啥吧!感谢那些助人为乐的人
为什么不直接用g[v][i]->w() ? 感觉应该是对的诶。
g[v]后面不可能存v了吧?
目前只看到这个章节 不太明白other这个函数有什么意义嘞?
bool hasEdge(int v,int w){
for(int i=0;i<g[v].size();i++){
if(g[v][i]->other(v)==w)
return true;
return false;
}
v只是我们在这个hasEdge中用的一个名字而已,和每一个edge里面存的v和w可能不是一致的。
你理解成,hasEdge的参数要写成a和b,怎么办?
bool hasEdge(int a,int b){ for(int i=0;i<g[a].size();i++){ if(g[a][i]->other(a) == b) return true; return false; } }
继续加油!:)
bobo老师,你写的代码添加的时候使用Edge的构造函数必定是从a开始到b,V和W函数就是return a和return b,也就是说在查找有无这条边的时候,例如hasEdge(3,5),那么g[v][i]->v()就一定是 3,g[v][i]->w() 就一定是另一条边,那么就和g[v][i]->other(v)是一样的意思呀,这是我的理解。
抱歉,我没有特别理解你的意思。所以你的意思是这段代码哪里是错误的?或者可以改写成怎样?
我的意思是可以不需要使用other()这个函数,因为g[v][i]->w()就一定是v的另一条边
登录后可查看更多问答,登录/注册
课程专为:短时间内应对面试、升职测评等艰巨任务打造
8.8k 21
5.8k 3
5.0k 5
1.4k 18