Python3使用BFS实现湖北省到全国省级行政区
生活随笔
收集整理的這篇文章主要介紹了
Python3使用BFS实现湖北省到全国省级行政区
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
Python3實(shí)現(xiàn)湖北省到全國(guó)省級(jí)行政區(qū)
Python3使用BFS實(shí)現(xiàn)湖北省到全國(guó)省級(jí)行政區(qū)
說(shuō)明:
全國(guó)34個(gè)省級(jí)行政區(qū)到湖北省的中間間隔不超過(guò)兩個(gè)省,即使是臺(tái)灣省和海南省,中間也絕對(duì)不會(huì)超過(guò)兩個(gè)省,臺(tái)灣-福建-江西-湖北,而海南-廣東-湖南-湖北。
地圖:
行政區(qū)的毗鄰行政區(qū)結(jié)構(gòu):
# 各個(gè)行政區(qū)的毗鄰行政區(qū)距離結(jié)構(gòu)graph = {'臺(tái)灣': ['福建'],'海南': ['廣東'],"內(nèi)蒙古": ["黑龍江", "吉林", "遼寧", "河北", "山西", "陜西", "寧夏", "甘肅"],"黑龍江": ["內(nèi)蒙古", "吉林"],"吉林": ["黑龍江", "內(nèi)蒙古", "遼寧"],"遼寧": ["吉林", "內(nèi)蒙古", "河北"],"河北": ["遼寧", "內(nèi)蒙古", "山西", "北京", "天津", "山東", "河南"],'河南': ['河北', '湖北', '陜西', '山西', '安徽', '山東'],"山東": ["河北", "河南", '安徽', '江蘇'],"北京": ["河北", "天津"],"天津": ["河北", "北京"],"山西": ["河北", "內(nèi)蒙古", "陜西", "河南"],"陜西": ["寧夏", "內(nèi)蒙古", "甘肅", "河南", "山西", "四川", "重慶", "湖北"],"寧夏": ["陜西", "內(nèi)蒙古", "甘肅"],"甘肅": ["寧夏", "內(nèi)蒙古", "陜西", "青海", "新疆", "四川"],"青海": ["甘肅", "西藏", "新疆", "四川"],"新疆": ["西藏", "甘肅", "青海"],"西藏": ["新疆", "青海", "四川", "云南"],"四川": ["青海", "西藏", "甘肅", "陜西", "云南", "貴州", "重慶"],'云南': ['西藏', '四川', '貴州', '廣西'],'重慶': ['陜西', '四川', '貴州', '湖南', '湖北'],'貴州': ['重慶', '四川', '云南', '廣西', '湖南'],'廣西': ['云南', '貴州', '湖南', '廣東'],'廣東': ['福建', '江西', '湖南', '廣西', '香港', '澳門(mén)','海南'],'湖南': ['湖北', '重慶', '貴州', '廣西', '廣東', '江西'],'江西': ['安徽', '湖北', '湖南', '廣東', '福建', '浙江'],'福建': ['浙江', '江西', '廣東','臺(tái)灣'],'湖北': ['河南', '陜西', '重慶', '湖南', '江西', '安徽'],'河南': ['河北', '山西', '陜西', '湖北', '安徽', '江蘇', '山東'],'安徽': ['河南', '湖北', '江西', '浙江', '江蘇', '山東'],'浙江': ['上海', '江蘇', '安徽', '江西', '福建'],'上海': ['江蘇', '浙江'],'江蘇': ['山東', '安徽', '浙江', '上海'],'山東': ['河北', '河南', '江蘇'],'香港': ['廣東'],'澳門(mén)': ['廣東'], }BFS廣度優(yōu)先遍歷:
# BFS廣度優(yōu)先遍歷 def BFS(graph, s):queue = []queue.append(s)seen = set()seen.add(s)parent = {s: None}while (len(queue) > 0):vertex = queue.pop(0)nodes = graph[vertex]for w in nodes:if w not in seen:queue.append(w)seen.add(w)parent[w] = vertex# print(vertex)return parentmain函數(shù)
if __name__ == '__main__':bfs_province = BFS(graph, '湖北')for key in bfs_province:v = keyroute="出發(fā)->"while v != None:route+=v+"->"v = bfs_province[v]route += "到啦!"print(route)運(yùn)行結(jié)果
Github地址
Github地址
總結(jié)
以上是生活随笔為你收集整理的Python3使用BFS实现湖北省到全国省级行政区的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: teleport最新版不支持mysql_
- 下一篇: Spring MVC-拦截器