最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

基于python模擬bfs和dfs代碼實(shí)例

 更新時間:2020年11月19日 10:43:43   作者:Neaya  
這篇文章主要介紹了基于python模擬bfs和dfs代碼實(shí)例,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下

BFS

"""
# @Time  : 2020/11/8
# @Author : Jimou Chen
"""


# 廣搜
def bfs(graph, start):
  queue = [start] # 先把起點(diǎn)入隊列
  visited = set() # 訪問國的點(diǎn)加入
  visited.add(start)

  while len(queue):
    vertex = queue.pop(0)
    # 找到隊列首元素的連接點(diǎn)
    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í)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • Python調(diào)整PDF文檔頁邊距的方法小結(jié)

    Python調(diào)整PDF文檔頁邊距的方法小結(jié)

    PDF 文檔中的邊距是指環(huán)繞每頁內(nèi)容的空白區(qū)域,充當(dāng)文本或圖像與頁面邊緣之間的緩沖區(qū),本文將介紹如何使用 Spire.PDF for Python 修改 PDF 文檔的頁邊距,為不同使用場景定制合適的文檔布局,需要的朋友可以參考下
    2024-05-05
  • 在CentOS7下安裝Python3教程解析

    在CentOS7下安裝Python3教程解析

    這篇文章主要介紹了在CentOS7下安裝Python3教程解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-07-07
  • Python教程之生產(chǎn)者消費(fèi)者模式解析

    Python教程之生產(chǎn)者消費(fèi)者模式解析

    在并發(fā)編程中使用生產(chǎn)者和消費(fèi)者模式能夠解決大不多的并發(fā)問題。該模式通過平衡生產(chǎn)線程和消費(fèi)線程的工作能力來提高程序的整體處理數(shù)據(jù)的速度
    2021-09-09
  • pytorch numpy list類型之間的相互轉(zhuǎn)換實(shí)例

    pytorch numpy list類型之間的相互轉(zhuǎn)換實(shí)例

    今天小編就為大家分享一篇pytorch numpy list類型之間的相互轉(zhuǎn)換實(shí)例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-08-08
  • python中dict使用方法詳解

    python中dict使用方法詳解

    這篇文章主要介紹了python中dict使用方法詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2019-07-07
  • python爬蟲入門教程之點(diǎn)點(diǎn)美女圖片爬蟲代碼分享

    python爬蟲入門教程之點(diǎn)點(diǎn)美女圖片爬蟲代碼分享

    這篇文章主要介紹了python爬蟲入門教程之點(diǎn)點(diǎn)美女圖片爬蟲代碼分享,本文以采集抓取點(diǎn)點(diǎn)網(wǎng)美女圖片為例,需要的朋友可以參考下
    2014-09-09
  • python調(diào)用接口的4種方式代碼實(shí)例

    python調(diào)用接口的4種方式代碼實(shí)例

    這篇文章主要介紹了python調(diào)用接口的4種方式代碼實(shí)例,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2019-11-11
  • Python爬蟲動態(tài)IP代理使用及防止被封的方法

    Python爬蟲動態(tài)IP代理使用及防止被封的方法

    在進(jìn)行網(wǎng)絡(luò)爬蟲時,經(jīng)常會遇到網(wǎng)站的反爬機(jī)制,其中之一就是通過IP封禁來限制爬蟲的訪問,為了規(guī)避這種限制,使用動態(tài)IP代理是一種有效的方法,本文將介紹在Python爬蟲中如何使用動態(tài)IP代理,以及一些防止被封的方法,文中有詳細(xì)的代碼講解,需要的朋友可以參考下
    2023-11-11
  • 利用python寫api接口實(shí)戰(zhàn)指南

    利用python寫api接口實(shí)戰(zhàn)指南

    api接口在我們開發(fā)中的重要性相信大家都這篇文章主要給大家介紹了關(guān)于利用python寫api接口實(shí)戰(zhàn)的相關(guān)資料,文中通過實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2022-05-05
  • 詳解Python中的枚舉類型

    詳解Python中的枚舉類型

    枚舉(Enum)是一種數(shù)據(jù)類型,是綁定到唯一值的符號表示。。本文就來和大家聊聊Python中的枚舉類型,為什么需要枚舉類型,及如何使用
    2022-08-08

最新評論

丁青县| 津南区| 桦川县| 吴桥县| 天气| 麟游县| 高雄市| 和静县| 巴青县| 钟祥市| 马边| 隆安县| 绥滨县| 八宿县| 南通市| 武山县| 新宁县| 乌鲁木齐市| 和顺县| 济南市| 西城区| 马龙县| 龙江县| 灵丘县| 克东县| 营山县| 万盛区| 九龙县| 汕尾市| 贵州省| 南木林县| 平远县| 郁南县| 柳州市| 昌邑市| 双峰县| 蒙山县| 青冈县| 吉木乃县| 兰溪市| 建宁县|