首页 > 其他分享 >bfs和dfs基础

bfs和dfs基础

时间:2022-08-25 20:48:51浏览次数:67  
标签:queue graph 基础 dfs bfs vis seen

# bfs & dfs

graph = {
    "A":["B","C"],
    "B":["A","C","D"],
    "C":["A","B","D","E"],
    "D":["B","C","E","F"],
    "E":["C","D"],
    "F":["D"],
}

def bfs(graph,s):
    queue = []
    queue.append(s)
    seen = set()
    seen.add(s)
    while len(queue) > 0:
        vis = queue.pop(0)
        nodes = graph[vis]
        for w in nodes:
            if w not in seen:
                queue.append(w)
                seen.add(w)
        
        print(vis)
     
def dfs(graph,s):
    stack = []
    stack.append(s)
    seen = set()
    seen.add(s)
    while len(stack) > 0:
        vis = stack.pop()
        nodes = graph[vis]
        for w in nodes:
            if w not in seen:
                stack.append(w)
                seen.add(w)
        
        print(vis)   


def main():
    bfs(graph,"E")
    dfs(graph,"E")


if __name__ == "__main__":
    main()

标签:queue,graph,基础,dfs,bfs,vis,seen
From: https://www.cnblogs.com/ray-mmss/p/16625629.html

相关文章

  • MyBatis-plus基础
    1.MyBatis-plus简介官网:https://www.mybatis-plus.com/2.快速开始(SpringBoot中使用MyBatis-plus的demo)数据库表user如下:DROPTABLEIFEXISTSuser;CREATETAB......
  • python基础——闭包 装饰器
    闭包函数嵌套,即外部函数嵌套一个内部函数;外部函数返回内部函数引用;内部函数使用外部函数的变量或者形参#简单演示#deff1(x):##deff2():#prin......
  • CSS基础
    1.概念概念:层叠样式表(英文全称:CascadingStyleSheets)。层叠的意思是多个样式表可以作用在同一个HTML的元素上,使其生效。好处:1.功能强大2.将内容展示和样式控制......
  • 【LalaLuna笔记】Nginx基础配置(1)
    nginx启动命令是什么第一种方法:进入sbin目录下执行以下命令:启动nginx的命令为/usr/local/nginx/sbin/nginx停止nginx的命令为/usr/local/nginx/sbin/nginx-sstop......
  • 【HDFS】一次Namenode的RPC延迟故障排查引发的深入思考
    一次Namenode的RPC延迟故障排查引发的深入思考前言正文问题排查初步定位临时恢复定位可疑进程问题分析问题脚本分析问题原因分析代码分析测试代码prometheus_clien......
  • 01_Linux基础-部署-VMware-Xshell-Xftp-内核-安迪比尔定理
    博客......
  • 【Vue基础】provide和inject 依赖与注入
    Vue组件通信provide和inject,注入使用场景,祖先组件向下层所有组件注入,无论层级多深,子组件均能接收来自祖先组件。某个模块由根组件内统一管理子组件内的状态。类型prov......
  • sed命令基础
    sed命令基础sed编辑器sed编辑器被称作流编辑器(streameditor)。流编辑器会在编辑器处理数据之前,基于预先提供的一组规则来编辑流。(说人话就是把输入的内容处理一下得......
  • python基础-GIL
    python速度慢的原因动态类型语言,边解释边执行GIL,无法利用多核CPU并发执行GIL同步线程的一种机制,使得任何时刻仅有一个线程在执行。在多核心处理器上,使用GIL的解释器......
  • python基础-垃圾回收机制
    1.主)引用计数(referencecounting)引用计数为0时,该对象生命就结束了。维护引用计数消耗资源,循环引用L.append(L)L一直不回收(辅)标记清除机制(markandsweep)**目的:**解决......