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开发SQLite3数据库相关操作详解【连接,查询,插入,更新,删除,关闭等】
Jul 27 Python
python使用Apriori算法进行关联性解析
Dec 21 Python
Python实现嵌套列表去重方法示例
Dec 28 Python
python爬虫获取多页天涯帖子
Feb 23 Python
python 爬虫 批量获取代理ip的实例代码
May 22 Python
PyQt4实时显示文本内容GUI的示例
Jun 14 Python
django基础学习之send_mail功能
Aug 07 Python
Python K最近邻从原理到实现的方法
Aug 15 Python
python高阶函数map()和reduce()实例解析
Mar 16 Python
Python 实现 T00ls 自动签到脚本代码(邮件+钉钉通知)
Jul 06 Python
python中zip()函数遍历多个列表方法
Feb 18 Python
Python中super().__init__()测试以及理解
Dec 06 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中突破基于HTTP_REFERER的防盗链措施(stream_context_create)
2011/03/29 PHP
浅析PHP文件下载原理
2014/12/25 PHP
php+mysqli数据库连接的两种方式
2015/01/28 PHP
php微信支付之APP支付方法
2015/03/04 PHP
php实现mysql数据库分表分段备份
2015/06/18 PHP
php中namespace及use用法分析
2016/12/06 PHP
PHP加MySQL消息队列深入理解
2021/02/27 PHP
原生js实现改变随意改变div属性style的名称和值的结果
2013/09/26 Javascript
同域jQuery(跨)iframe操作DOM(示例代码)
2013/12/13 Javascript
javascript实现rgb颜色转换成16进制格式
2015/07/10 Javascript
基于bootstrap3和jquery的分页插件
2015/07/31 Javascript
基于jquery实现三级下拉菜单
2016/05/10 Javascript
Web安全测试之XSS实例讲解
2016/08/15 Javascript
浅析JavaScript的几种Math函数,random(),ceil(),round(),floor()
2016/12/22 Javascript
js实现年月日表单三级联动
2020/04/17 Javascript
JavaScript 程序错误Cannot use 'in' operator to search的解决方法
2017/07/10 Javascript
js实现盒子移动动画效果
2020/08/09 Javascript
Python实现把数字转换成中文
2015/06/29 Python
Python Queue模块详细介绍及实例
2016/12/27 Python
Python3 实现随机生成一组不重复数并按行写入文件
2018/04/09 Python
解决django服务器重启端口被占用的问题
2019/07/26 Python
Python实现Singleton模式的方式详解
2019/08/08 Python
Python多线程通信queue队列用法实例分析
2020/03/24 Python
打印tensorflow恢复模型中所有变量与操作节点方式
2020/05/26 Python
python源文件的字符编码知识点详解
2021/03/04 Python
详解移动端html5页面长按实现高亮全选文本内容的兼容解决方案
2016/12/03 HTML / CSS
萨克斯第五大道精品百货店: Saks Fifth Avenue
2017/04/28 全球购物
联想C++笔试题
2012/06/13 面试题
大学本科毕业生的自我鉴定
2013/11/26 职场文书
CAD制图人员的自荐信
2014/02/07 职场文书
基层党组织建设整改方案
2014/09/16 职场文书
苏州园林导游词
2015/02/03 职场文书
销售员自我评价
2015/03/11 职场文书
2015年度房地产工作总结
2015/04/09 职场文书
小学新课改心得体会
2016/01/22 职场文书
服务器SVN搭建图文安装过程
2022/06/21 Servers