CS 1501KhattabGeneral警长提示
•您可以使用ag.getAirports().size()获取顶点的数量,从而
ag是一个AirlineGraph对象
•使用for(String airport:ag.getAirports())在机场上迭代{…}
•您可以使用
ag.getAirportNo()方法
•您可以使用检索机场的邻居集
ag.adj(机场名称)
•迭代邻居集:for(Route r:ag.adj(airportName)){…}
•您可以使用r.destination检索邻近机场的名称
•您可以使用HashSet来实例化Set objectsfewestStops
•使用BFS
•检查课堂讲稿中的伪代码
•最短路径来源->中转->目的地可通过找到
•最短路径源 运输
•最短路径运输 目的地
•连接两条最短路径
•注意不要在连接的路径上添加两次中转连接的组件
•使用BFS
•您可以在讲义sallTrips中找到伪代码
•使用回溯和修剪
•定义递归辅助方法:求解(当前决策、当前解决方案)
•当前决策 当前顶点(int或String)•当前解决方案
•设置到目前为止发现的行程的<ArrayList<Route>>
•当前路径:ArrayList<Route>
•目前路径的总价格
•到目前为止,当前路径的停靠次数
•目的地、预算和可供比较的最大停靠次数
•在递归助手方法内部:
•如果当前顶点是目标 将当前路径添加到解决方案集并返回
•迭代所有可能性(未标记的邻居)
•检查是否可以将邻居添加到当前路径(总价不会超过预算,站点总数不会超过最大站点)
•如果是,标记邻居,更新当前路径、价格和站点数量。
•对邻居进行递归调用
•撤消对当前路径、价格和站点数量的更改,并取消标记邻居
•在第一次呼叫解决allRoundTrips之前标记开始机场
•使用回溯和修剪
•定义递归辅助方法:求解(当前决策、当前解决方案)
•当前决策 当前顶点(int或String)•当前解决方案
•设置到目前为止发现的行程的<ArrayList<Route>>
•当前路径:ArrayList<Route>
•目前路径的总价格
•到目前为止,当前路径的停靠次数
•用于比较的预算和最大停靠次数
•在递归助手方法内部:
•如果当前顶点是源并停止到目前为止>0 将当前路径添加到解决方案集并返回
•迭代所有可能性(未标记的邻居)
•检查是否可以将邻居添加到当前路径(总价不会超过预算,站点总数不会超过最大站点)
•如果是,标记邻居,更新当前路径、价格和站点数量。
•对邻居进行递归调用
•撤消对当前路径、价格和站点数量的更改,并取消标记邻居
WX:codinghelp
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。