久久r热视频,国产午夜精品一区二区三区视频,亚洲精品自拍偷拍,欧美日韩精品二区

您的位置:首頁技術(shù)文章
文章詳情頁

基于python模擬bfs和dfs代碼實例

瀏覽:2日期:2022-07-04 18:55:09

BFS

'''# @Time : 2020/11/8# @Author : Jimou Chen'''# 廣搜def bfs(graph, start): queue = [start] # 先把起點入隊列 visited = set() # 訪問國的點加入 visited.add(start) while len(queue): vertex = queue.pop(0) # 找到隊列首元素的連接點 for v in graph[vertex]: if v not in visited:queue.append(v)visited.add(v) # 打印彈出隊列的該頭元素 print(vertex, end=’ ’)if __name__ == ’__main__’: graph = { ’A’: [’B’, ’D’, ’I’], ’B’: [’A’, ’F’], ’C’: [’D’, ’E’, ’I’], ’D’: [’A’, ’C’, ’F’], ’E’: [’C’, ’H’], ’F’: [’B’, ’H’], ’G’: [’C’, ’H’], ’H’: [’E’, ’F’, ’G’], ’I’: [’A’, ’C’] } bfs(graph, ’A’)

A B D I F C H E G Process finished with exit code 0

DFS

'''# @Time : 2020/11/8# @Author : Jimou Chen'''# 深搜def dfs(graph, start): stack = [start] visited = set() visited.add(start) while len(stack): vertex = stack.pop() # 找到棧頂元素 for v in graph[vertex]: if v not in visited:stack.append(v)visited.add(v) print(vertex, end=’ ’)if __name__ == ’__main__’: graph = { ’A’: [’B’, ’D’, ’I’], ’B’: [’A’, ’F’], ’C’: [’D’, ’E’, ’I’], ’D’: [’A’, ’C’, ’F’], ’E’: [’C’, ’H’], ’F’: [’B’, ’H’], ’G’: [’C’, ’H’], ’H’: [’E’, ’F’, ’G’], ’I’: [’A’, ’C’] } dfs(graph, ’E’)

E H G F B A I D C Process finished with exit code 0

總結(jié)

很明顯一個用了隊列,一個用了棧

利用python語言優(yōu)勢,只需改動pop即可

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持好吧啦網(wǎng)。

標簽: Python 編程
相關(guān)文章:
主站蜘蛛池模板: 仙居县| 邯郸县| 宁津县| 乐业县| 武定县| 华阴市| 平乐县| 遵义市| 开化县| 高唐县| 伊宁市| 信宜市| 青海省| 东阿县| 吉木乃县| 清丰县| 忻州市| 衡阳县| 格尔木市| 金坛市| 芦山县| 巫溪县| 贵德县| 滦南县| 顺义区| 墨竹工卡县| 民勤县| 绥芬河市| 新郑市| 建平县| 扎赉特旗| 大庆市| 太仆寺旗| 神池县| 武定县| 漠河县| 措勤县| 丹东市| 中西区| 梁山县| 曲沃县|