Eloquent JavaScript机器人项目buildGraph两次调用addEdge原因咨询
问题解答
这段代码是用来构建村庄道路的无向图结构,连续两次调用addEdge是为了实现道路的双向通行逻辑:
- 你传入的
edges数组的每一项都是类似"A地点-B地点"格式的字符串,代表两个地点之间存在一条可以双向走的道路 - 第一次调用
addEdge(from, to):把to添加到from的可达邻居列表中,标记从起点可以走到终点 - 第二次调用
addEdge(to, from):反过来把from添加到to的可达邻居列表中,标记从终点也可以走回起点
如果只调用一次addEdge,最终生成的就是单向通行的有向图,比如你输入"邮局-超市"的道路,最后只能从邮局走到超市,没法从超市返回邮局,完全不符合真实的道路通行规则,也没法支撑后续机器人寻路的逻辑。
另外补充个小笔误:你代码里的函数名打错了,应该是buildGraph不是buildGrpah,不影响核心运行逻辑。
内容的提问来源于stack exchange,提问作者Explicit
相关产品推荐
相关产品推荐

