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中的异常处理
Apr 28 Python
Pycharm技巧之代码跳转该如何回退
Jul 16 Python
numpy matrix和array的乘和加实例
Jun 28 Python
Python实现插入排序和选择排序的方法
May 12 Python
python 杀死自身进程的实现方法
Jul 01 Python
python基于socket函数实现端口扫描
May 28 Python
解决python运行启动报错问题
Jun 01 Python
Python celery原理及运行流程解析
Jun 13 Python
解析Tensorflow之MNIST的使用
Jun 30 Python
pandas apply使用多列计算生成新的列实现示例
Feb 24 Python
python中%格式表达式实例用法
Jun 18 Python
基于Python实现射击小游戏的制作
Apr 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图片处理之使用imagecopyresampled函数裁剪图片例子
2014/11/19 PHP
PHP实现获取FLV文件的时间
2015/02/10 PHP
php中static 静态变量和普通变量的区别
2016/12/01 PHP
php回调函数处理数组操作示例
2020/04/13 PHP
使用按钮控制以何种方式打开新窗口的属性介绍
2012/12/17 Javascript
解决JQeury显示内容没有边距内容紧挨着浏览器边线
2013/12/20 Javascript
javascript中不等于的代码是什么怎么写
2013/12/29 Javascript
页面图片浮动左右滑动效果的简单实现案例
2014/02/10 Javascript
node.js应用后台守护进程管理器Forever安装和使用实例
2014/06/01 Javascript
jQuery中ready事件用法实例
2015/01/19 Javascript
jQuery学习笔记之jQuery+CSS3的浏览器兼容性
2015/01/19 Javascript
Jquery中基本选择器用法实例详解
2015/05/18 Javascript
JS实现密码框根据焦点的获取与失去控制文字的消失与显示效果
2015/11/26 Javascript
BOM系列第一篇之定时器setTimeout和setInterval
2016/08/17 Javascript
基于LayUI实现前端分页功能的方法
2017/07/22 Javascript
JavaScript编写的网页小游戏,很给力
2017/08/18 Javascript
JavaScript生成一个不重复的ID的方法示例
2019/09/16 Javascript
[59:42]Secret vs Alliacne 2019国际邀请赛小组赛 BO2 第一场 8.15
2019/08/17 DOTA
python实现红包裂变算法
2016/02/16 Python
利用Python中unittest实现简单的单元测试实例详解
2017/01/09 Python
python回调函数中使用多线程的方法
2017/12/25 Python
Python基于FTP模块实现ftp文件上传操作示例
2018/04/23 Python
Python(TensorFlow框架)实现手写数字识别系统的方法
2018/05/29 Python
Python爬虫实现简单的爬取有道翻译功能示例
2018/07/13 Python
Pytorch实现LSTM和GRU示例
2020/01/14 Python
Python Http请求json解析库用法解析
2020/11/28 Python
Pandas的数据过滤实现
2021/01/15 Python
解决html5中的video标签ios系统中无法播放使用的问题
2020/08/10 HTML / CSS
英国独特的时尚和生活方式品牌:JOY
2018/03/17 全球购物
烹调加工管理制度
2014/02/04 职场文书
党员实事承诺书
2014/03/26 职场文书
大学生就业求职信
2014/06/12 职场文书
八一建军节营销活动方案
2014/08/31 职场文书
在教室放鞭炮的检讨书
2014/09/28 职场文书
继续教育个人总结
2015/03/03 职场文书
2016年五一促销广告语
2016/01/28 职场文书