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实现系统状态监测和故障转移实例方法
Nov 18 Python
Python 详解基本语法_函数_返回值
Jan 22 Python
Python常用时间操作总结【取得当前时间、时间函数、应用等】
May 11 Python
在dataframe两列日期相减并且得到具体的月数实例
Jul 03 Python
python代码过长的换行方法
Jul 19 Python
Flask实现跨域请求的处理方法
Sep 27 Python
Python文本处理简单易懂方法解析
Dec 19 Python
Django如何在不停机的情况下创建索引
Aug 02 Python
python3跳出一个循环的实例操作
Aug 18 Python
Python基于tkinter canvas实现图片裁剪功能
Nov 05 Python
OpenCV-Python实现轮廓的特征值
Jun 09 Python
全网非常详细的pytest配置文件
Jul 15 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去除换行(回车换行)的三种方法
2014/03/26 PHP
PHP简单获取及判断提交来源的方法
2016/04/22 PHP
Yii实现简单分页的方法
2016/04/29 PHP
PHP中的函数声明与使用详解
2017/05/27 PHP
实现laravel 插入操作日志到数据库的方法
2019/10/11 PHP
Javascript倒计时页面跳转实例小结
2013/09/11 Javascript
js+css实现超简洁的二级下拉菜单效果代码
2015/09/07 Javascript
基于BootStrap与jQuery.validate实现表单提交校验功能
2016/12/22 Javascript
JS中IP地址与整数相互转换的实现代码
2017/04/10 Javascript
jQuery实现的表格前端排序功能示例
2017/09/18 jQuery
Vue项目使用CDN优化首屏加载问题
2018/04/01 Javascript
解决vue 单文件组件中样式加载问题
2019/04/24 Javascript
富文本编辑器vue2-editor实现全屏功能
2019/05/26 Javascript
p5.js实现动态图形临摹
2019/10/23 Javascript
vue多个元素的样式选择器问题
2019/11/29 Javascript
Vue.js原理分析之nextTick实现详解
2020/09/07 Javascript
Python中使用摄像头实现简单的延时摄影技术
2015/03/27 Python
python通过post提交数据的方法
2015/05/06 Python
python实现实时监控文件的方法
2016/08/26 Python
详解Python中的静态方法与类成员方法
2017/02/28 Python
利用python批量修改word文件名的方法示例
2017/10/17 Python
ubuntu 18.04搭建python环境(pycharm+anaconda)
2019/06/14 Python
bluepy 一款python封装的BLE利器简单介绍
2019/06/25 Python
用django设置session过期时间的方法解析
2019/08/05 Python
Pytorch卷积层手动初始化权值的实例
2019/08/17 Python
Python PIL图片添加字体的例子
2019/08/22 Python
英国广泛的照明产品网站:Lights4living
2018/01/28 全球购物
美体小铺波兰官方网站:The Body Shop波兰
2019/09/03 全球购物
美国宠物护理专家:Revival Animal Health
2020/01/05 全球购物
十岁生日父母答谢词
2014/01/18 职场文书
学生保证书范文
2014/04/28 职场文书
幼儿园教研活动总结
2014/04/30 职场文书
政协调研汇报材料
2014/08/15 职场文书
前台接待岗位职责
2015/02/03 职场文书
交通安全月活动总结
2015/05/08 职场文书
南京大屠杀观后感
2015/06/02 职场文书