请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

老师您好~ 想问问这个函数中g[v][i]->other(v) 为什么非要用other()

为什么不直接用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;         

}      

}

正在回答 回答被采纳积分+3

1回答

liuyubobobo 2019-05-12 17:02:50

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;         
    }      
}


继续加油!:)

0 回复 有任何疑惑可以回复我~
  • 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)是一样的意思呀,这是我的理解。
    回复 有任何疑惑可以回复我~ 2020-10-25 21:00:26
  • 抱歉,我没有特别理解你的意思。所以你的意思是这段代码哪里是错误的?或者可以改写成怎样?
    回复 有任何疑惑可以回复我~ 2020-10-26 11:58:10
  • 我的意思是可以不需要使用other()这个函数,因为g[v][i]->w()就一定是v的另一条边
    回复 有任何疑惑可以回复我~ 2020-10-26 13:34:02
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信