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

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

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

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

總結

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

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

以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

相關文章

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

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

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

    在CentOS7下安裝Python3教程解析

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

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

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

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

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

    python中dict使用方法詳解

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

    python爬蟲入門教程之點點美女圖片爬蟲代碼分享

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

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

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

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

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

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

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

    詳解Python中的枚舉類型

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

最新評論

明星| 昌宁县| 临海市| 德令哈市| 贵溪市| 内乡县| 莱西市| 栾川县| 晋城| 罗平县| 梨树县| 塔城市| 鹤壁市| 佛坪县| 钟山县| 朝阳县| 达孜县| 元江| 鄂托克前旗| 黑龙江省| 鄂托克旗| 沈阳市| 延长县| 正定县| 深水埗区| 石景山区| 乌兰县| 都昌县| 上高县| 五大连池市| 顺昌县| 永登县| 商水县| 万载县| 广安市| 福建省| 黄陵县| 噶尔县| 潮州市| 台中市| 甘谷县|