



用链式前向星或者邻接表存图会更加方便的 懒得改了就这样吧 注释之后有时间补上
因为dfs是相同代价搜索 所以路径代价没有用处
import pandas as pd
import sys
from pandas import Series, DataFrame
# 城市信息:city1 city2 path_cost
_city_info = None
# 按照路径消耗进行排序的FIFO,低路径消耗在前面
# 优先队列
_frontier_priority = []
# 节点数据结构
class Node:
def __init__(self, state, parent, action, path_cost):
self.state = state
self.parent = parent
self.action = action
self.path_cost = path_cost
def main():
global _city_info
import_city_info()
while True:
src_city = input('输入初始城市\n')
dst_city = input('输入目的城市\n')
# result = breadth_first_search(src_city, dst_city)
result = iterative_deepening_search(src_city, dst_city) # 搜索路径
# print(result.state)
if not result:
print('从城市: %s 到城市 %s 查找失败' % (src_city, dst_city))
else:
print('从城市: %s 到城市 %s 查找成功' % (src_city, dst_city))
path = [] # 记录路径
while True: # 回溯 输出路径
path.append(result.state)
if result.parent is None:
break
result = result.parent
size = len(path)
for i in range(size):
使用迭代加深搜索解决城市路径规划问题

最低0.47元/天 解锁文章
612





