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脚本实现分析dns日志并对受访域名排行
Sep 18 Python
Python base64编码解码实例
Jun 21 Python
python编程实现归并排序
Apr 14 Python
python中print()函数的“,”与java中System.out.print()函数中的“+”功能详解
Nov 24 Python
Python中的默认参数实例分析
Jan 29 Python
python2.7读取文件夹下所有文件名称及内容的方法
Feb 24 Python
Python3非对称加密算法RSA实例详解
Dec 06 Python
使用Python横向合并excel文件的实例
Dec 11 Python
Python3调用百度AI识别图片中的文字功能示例【测试可用】
Mar 13 Python
详解Python列表赋值复制深拷贝及5种浅拷贝
May 15 Python
Pycharm简单使用教程(入门小结)
Jul 04 Python
Python绘图实现显示中文
Dec 04 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 处理图片的类实现代码
2009/10/23 PHP
使用php转义输出HTML到JavaScript
2015/03/27 PHP
PHP+shell脚本操作Memcached和Apache Status的实例分享
2016/03/11 PHP
JavaScript 撑出页面文字换行
2009/06/15 Javascript
JQuery Ajax 跨域访问的解决方案
2010/03/12 Javascript
jquery插件开发注意事项小结
2013/06/04 Javascript
JavaScript将字符串转换为整数的方法
2015/04/14 Javascript
深入浅析JavaScript系列(13):This? Yes,this!
2016/01/05 Javascript
vue模板语法-插值详解
2017/03/06 Javascript
jquery 校验中国身份证号码实例详解
2017/04/11 jQuery
使用JS判断移动端手机横竖屏状态
2018/07/30 Javascript
详解redux异步操作实践
2018/08/15 Javascript
laydate时间日历插件使用方法详解
2018/11/14 Javascript
原生js实现公告滚动效果
2021/01/10 Javascript
vue语法自动转typescript(解放双手)
2019/09/18 Javascript
javascript使用Blob对象实现的下载文件操作示例
2020/04/18 Javascript
JavaScript 面向对象程序设计详解【类的创建、实例对象、构造函数、原型等】
2020/05/12 Javascript
解决vue-cli输入命令vue ui没效果的问题
2020/11/17 Javascript
[49:27]2018DOTA2亚洲邀请赛 4.4 淘汰赛 TNC vs VG 第一场
2018/04/05 DOTA
Python用GET方法上传文件
2015/03/10 Python
Pycharm 操作Django Model的简单运用方法
2018/05/23 Python
目前最全的python的就业方向
2018/06/05 Python
使用Python实现微信提醒备忘录功能
2018/12/04 Python
Python实现EXCEL表格的排序功能示例
2019/06/25 Python
python2.7实现复制大量文件及文件夹资料
2019/08/31 Python
python opencv实现gif图片分解的示例代码
2019/12/13 Python
使用PyTorch将文件夹下的图片分为训练集和验证集实例
2020/01/08 Python
Python变量及数据类型用法原理汇总
2020/08/06 Python
基于Python的接口自动化unittest测试框架和ddt数据驱动详解
2021/01/27 Python
幼教简历自我评价
2014/01/28 职场文书
李敖北大演讲稿
2014/05/24 职场文书
大学生自我评价200字(4篇)
2014/09/17 职场文书
就业导师推荐信范文
2015/03/27 职场文书
党支部季度考核意见
2015/06/02 职场文书
2016新年问候语大全
2015/11/11 职场文书
MySQL中rank() over、dense_rank() over、row_number() over用法介绍
2022/03/23 MySQL