深度遍历和广度遍历(图解)
深度遍历、广度遍历图解:
深度:
广度:
1.栈模拟递归:
mystack=[]
mystack.append(5)
lastnum=0
while len(mystack)!=0:data=mystack.pop()#弹出数据print(data)lastnum+=dataif data==0:breakelse:mystack.append(data-1)
print(lastnum)
结果:
2.模拟递归实现文件遍历:深度
import os
path=r"D:\桌面\代码"
mystack=[]
mystack.append([path,0])
while len(mystack)!=0:pathlist=mystack.pop()#取出文件夹filelist=os.listdir(pathlist[0])#遍历文件num=pathlist[1]#代表层次headstr=""for i in range(num):headstr+=" "for i in range(len(filelist)):filename = filelist[len(filelist) - 1 - i]filepath = os.path.join(pathlist[0], filename) # 链接,取得绝对路径if os.path.isdir(filepath):print(headstr,"文件夹",filename)mystack.append([filepath,num+1])else:print(headstr,"文件",filename)
结果:
3. 队列广度遍历:
import os
from collections import deque
path=r"D:\桌面\芜湖"
queue=deque([])#队列
queue.append(path)
while len(queue)!=0:path=queue.popleft()#取出值filelist=os.listdir(path)#遍历路径for filename in filelist:filepath=os.path.join(path,filename)if os.path.isdir(filepath):print("文件夹",filename)queue.append(filepath)else:print("文件",filename)
结果:
深度遍历和广度遍历(图解)相关推荐
- 数据结构——无向图创建邻接表以及深度遍历、广度遍历(C语言版)
摘自:数据结构--无向图创建邻接表以及深度遍历.广度遍历(C语言版) 作者:正弦定理 发布时间:2020-12-22 20:55:12 网址:https://blog.csdn.net/chinese ...
- python来进行图的深度遍历和广度遍历
python来进行图的深度遍历和广度遍历 # -*- coding: utf-8 -*- """ Created on Sat Sep 14 18:01:27 2019@ ...
- 深度遍历 java_Java 实现深度遍历和广度遍历数及其应用
一.深度遍历和广度遍历原理及实现 1.深度优先 英文缩写为DFS即Depth First Search.其过程简要来说是对每一个可能的分支路径深入到不能再深入为止,而且每个节点只能访问一次.对于上面的 ...
- 图的深度遍历和广度遍历算法
图的深度遍历和广度遍历算法 图的深度遍历可以简单理解为一条道走到黑,首先访问图中任一起始顶点v,再访问与v顶点邻接且未被访问过的顶点w1,再访问与w1邻接且未被访问过的顶点w2,重复上述操作,若不能继 ...
- 图的深度遍历和广度遍历
理论部分 图的深度遍历和广度遍历都不算很难像极了二叉树的前序遍历和层序遍历,如下面的图,可以用右边的邻接矩阵进行表示,假设以顶点0开始对整幅图进行遍历的话,两种遍历方式的思想如下: 1. 深度优先遍历 ...
- js中树形结构的深度遍历与广度遍历
树形结构的深度遍历与广度遍历 定义 深度遍历:一个树形结构中,由一个数据分支全部遍历完才去遍历另外一个分支,直至全部数据遍历完成. 广度遍历:先遍历最外层的分支数据,然后一层一层的进行深入遍历,直至全 ...
- 深度遍历 java_java 图论一 深度遍历和广度遍历
图对建模很有帮助. 图的基本知识: Java实现图的两种方法 1邻接矩阵 邻接矩阵是用二维数据,使用1代表节点间有边,如下表格: A B C D A 0 1 1 1 B 1 0 0 1 C 1 0 0 ...
- 对称二叉树--深度遍历与广度遍历
问题来源:对称二叉树 问题描述:给定一个二叉树,检查它是否是镜像对称的. 比如,下面这个二叉树是镜像对称的: 1 / 2 2 / \ / 3 4 4 3 而这个二叉树则不是镜像对称的. 1 / 2 2 ...
- java遍历树(深度遍历和广度遍历)
java遍历树 如现有以下一颗树:A B B1 B11 B2 B22 C ...
- 【数据结构】图的深度遍历与广度遍历
图是一种常见的数据格式,它的遍历主要分为两种: 深度优先遍历(DFS):类似于二叉树的前序前序遍历 广度优先遍历(BFS):类似于二叉树的层次遍历 一.出度与入度 在讲图的遍历之前,我们需要先了解图的 ...
最新文章
- 遗传算法主程序(辅助)
- 基于c语言开发老人防摔系统,家有老人,做好防摔排查
- JdbcTemplate详解 - 2
- 如何调用Altera FPGA的内嵌乘法器
- Python线程与进程 I/O多路复用
- Java ByteArrayInputStream reset()方法及示例
- Python操作MSSQL
- Hibernate实体映射配置1(java@注解方式)
- 操作系统之内存管理:6、页面分配策略、抖动、工作集
- xcode 4.2下怎么添加framework?
- cmd 笔记(随时补充)
- python软件下载安装中文版-pathon软件下载 python官方中文版3.6.0
- codeforces 286E Ladies' Shop
- 【虹膜识别】基于matlab GUI滤波器虹膜识别【含Matlab源码 917期】
- fifaol4服务器维护,新闻|FIFAOL4 5月7日停机维护公告
- 机器学习笔记 - 学习使用TensorFlow和张量处理单元 (TPU) 构建图像分类模型
- 各种语言如何连接到 OceanBase
- Python中sys.argv[]的用法简明解释
- 小程序替换二维码logo并添加文字
- 最小二乘法拟合椭圆(椭圆拟合线)
热门文章
- Python+旧衣物捐赠系统 毕业设计-附源码290942
- 坚果云根目录同步冲突解决方法
- 一个MySQL优化案例的初步思路(r8笔记第87天)
- SHA 加密是什么( sha1 和 MD5 的区别 )
- 打喷嚏喉咙痛流鼻涕英文说呢?
- EPIC/Steam 手柄没反应问题解决办法
- 如何将虚拟机上的文件复制到主机上
- 怎么把qlv格式转成mp4
- MacOS Big Sur 11.2.3 (20D91) with Clover 5131 and OC 0.6.7 and PE 三EFI分区原版DMG黑苹果镜像
- c语言判断闰年并输出该月天数,C语言宏定义实现闰年判断并输出指定月的天数...