Python实现深度遍历和广度遍历的方法


Posted in Python onJanuary 22, 2019

深度遍历:

原则:从上到下,从左到右

逻辑(本质用递归):

1)、找根节点

2)、找根节点的左边

3)、找根节点的右边

class Node(object):
 def __init__(self, item=None, left=None, right=None):
  self.item = item
  self.left = left
  self.right = right
 
 
d = Node("D")
e = Node("E")
b = Node("B", d, e)
f = Node("F")
g = Node("G")
c = Node("C", f, g)
a = Node("A", b, c)
 
 
result = []
 
 
def deep_search(root):
 # 深度遍历 核心:递归
 result.append(root.item)
 if root.left:
  deep_search(root.left)
 if root.right:
  deep_search(root.right)
 return "-->".join(result)
 
 
print deep_search(a)

广度遍历:

核心:队列+递归

def wide_search(root, result=[]):
 
 if not result:
  result.append(root.item)
 if root.left:
  result.append(root.left.item)
 if root.right:
  result.append(root.right.item)
 if root.left:
  wide_search(root.left)
 if root.right:
  wide_search(root.right)
 return "-->".join(result)
 
 
print wide_search(a)

以上这篇Python实现深度遍历和广度遍历的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
对于Python的Django框架使用的一些实用建议
Apr 03 Python
总结python实现父类调用两种方法的不同
Jan 15 Python
Python 查看文件的编码格式方法
Dec 21 Python
python实现雨滴下落到地面效果
Jun 21 Python
pyqt5的QComboBox 使用模板的具体方法
Sep 06 Python
Python 调用PIL库失败的解决方法
Jan 08 Python
python Web flask 视图内容和模板实现代码
Aug 23 Python
浅谈Python中的字符串
Jun 10 Python
详解Python的爬虫框架 Scrapy
Aug 03 Python
小结Python的反射机制
Sep 28 Python
Python安装第三方库攻略(pip和Anaconda)
Oct 15 Python
Python 如何实现文件自动去重
Jun 02 Python
Python遍历文件夹 处理json文件的方法
Jan 22 #Python
Python多线程原理与用法实例剖析
Jan 22 #Python
python解析含有重复key的json方法
Jan 22 #Python
Python设计模式之简单工厂模式实例详解
Jan 22 #Python
对python字典过滤条件的实例详解
Jan 22 #Python
python实现淘宝秒杀脚本
Jun 23 #Python
python实现网页自动签到功能
Jan 21 #Python
You might like
php读取csv数据保存到数组的方法
2015/01/03 PHP
再推荐十款免费的php开发工具
2015/11/09 PHP
ECshop 迁移到 PHP7版本时遇到的兼容性问题
2016/02/15 PHP
PHP中explode函数和split函数的区别小结
2016/08/24 PHP
CodeIgniter框架验证码类库文件与用法示例
2017/03/18 PHP
javascript 自定义事件初探
2009/08/21 Javascript
javascript 同时在IE和FireFox获取KeyCode的代码
2010/02/07 Javascript
js判断图片加载完成后获取图片实际宽高的方法
2016/02/25 Javascript
Bootstrap实现带暂停功能的轮播组件(推荐)
2016/11/25 Javascript
使用vue.js实现checkbox的全选和多个的删除功能
2017/02/17 Javascript
vue中如何引入jQuery和Bootstrap
2017/04/10 jQuery
node.js中express中间件body-parser的介绍与用法详解
2017/05/23 Javascript
bootstrap3使用bootstrap datetimepicker日期插件
2017/05/24 Javascript
JavaScript中in和hasOwnProperty区别详解
2017/08/04 Javascript
100行代码实现一个vue分页组功能
2018/11/06 Javascript
Webpack按需加载打包chunk命名的方法
2019/09/22 Javascript
VSCode写vue项目一键生成.vue模版,修改定义其他模板的方法
2020/04/17 Javascript
Centos5.x下升级python到python2.7版本教程
2015/02/14 Python
Python实现文件按照日期命名的方法
2015/07/09 Python
Python Socket传输文件示例
2017/01/16 Python
Python字典及字典基本操作方法详解
2018/01/30 Python
学习python可以干什么
2019/02/26 Python
Django框架模板语言实例小结【变量,标签,过滤器,继承,html转义】
2019/05/23 Python
Python传递参数的多种方式(小结)
2019/09/18 Python
基于Python测试程序是否有错误
2020/05/16 Python
基于python实现图片转字符画代码实例
2020/09/04 Python
Mountain Warehouse波兰官方网站:英国户外品牌
2019/08/29 全球购物
TALLY WEiJL法国网上商店:服装、时装及配饰
2019/08/31 全球购物
2015年幼儿园毕业感言
2014/02/12 职场文书
捐献物资倡议书范文
2014/05/19 职场文书
教师个人自我剖析材料
2014/09/29 职场文书
项目投资意向书范本
2015/05/09 职场文书
退休教师追悼词
2015/06/23 职场文书
python将图片转为矢量图的方法步骤
2021/03/30 Python
【海涛教你打DOTA】剑圣第一人称视角解说
2022/04/01 DOTA
win10+RTX3050ti+TensorFlow+cudn+cudnn配置深度学习环境的方法
2022/06/25 Servers