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实现二维数组按照某行或列排序的方法【numpy lexsort】
Sep 22 Python
python矩阵转换为一维数组的实例
Jun 05 Python
python爬虫之线程池和进程池功能与用法详解
Aug 02 Python
numpy 计算两个数组重复程度的方法
Nov 07 Python
Python使用Selenium爬取淘宝异步加载的数据方法
Dec 17 Python
python爬取指定微信公众号文章
Dec 20 Python
在Python中使用MySQL--PyMySQL的基本使用方法
Nov 19 Python
Django密码存储策略分析
Jan 09 Python
pytorch  网络参数 weight bias 初始化详解
Jun 24 Python
Windows环境下Python3.6.8 importError: DLLload failed:找不到指定的模块
Nov 01 Python
基于Python模拟浏览器发送http请求
Nov 06 Python
你喜欢篮球吗?Python实现篮球游戏
Jun 11 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
一个取得文件扩展名的函数
2006/10/09 PHP
PHP实现简单实用的验证码类
2015/07/29 PHP
PHP关于foreach复制知识点总结
2019/01/28 PHP
php扩展开发入门demo示例
2019/09/23 PHP
对象的类型:本地对象(1)
2006/12/29 Javascript
jquery实现的超出屏幕时把固定层变为定位层的代码
2010/02/23 Javascript
一个简单的js鼠标划过切换效果
2010/06/30 Javascript
jquery全选/全不选/反选另一种实现方法(配合原生js)
2013/04/07 Javascript
解析JavaScript中的不可见数据类型
2013/12/02 Javascript
jQuery的each终止或跳过示例代码
2013/12/12 Javascript
js中运算符&& 和 || 的使用记录
2014/08/21 Javascript
浅谈jQuery.easyui的datebox格式化时间
2015/06/25 Javascript
jquery操作angularjs对象
2015/06/26 Javascript
javascript针对cookie的基本操作实例详解
2015/11/30 Javascript
深入理解jquery跨域请求方法
2016/05/18 Javascript
15个值得开发人员关注的jQuery开发技巧和心得总结【经典收藏】
2016/05/25 Javascript
简单实现JS计算器功能
2016/12/21 Javascript
JavaScript实现自定义媒体播放器方法介绍
2017/01/03 Javascript
Cpage.js给组件绑定事件的实现代码
2017/08/31 Javascript
用JavaScript做简易的购物车的代码示例
2017/10/20 Javascript
ES6知识点整理之数组解构和字符串解构的应用示例
2019/04/17 Javascript
layer弹出层扩展主题的方法
2019/09/11 Javascript
python del()函数用法
2013/03/24 Python
Python字符串转换成浮点数函数分享
2015/07/24 Python
Python数据结构之单链表详解
2017/09/12 Python
python list元素为tuple时的排序方法
2018/04/18 Python
Python实现确认字符串是否包含指定字符串的实例
2018/05/02 Python
python 正则表达式贪婪模式与非贪婪模式原理、用法实例分析
2019/10/14 Python
python3正则模块re的使用方法详解
2020/02/11 Python
几款主流好用的富文本编辑器(所见即所得常用编辑器)介绍
2021/03/17 Javascript
联想法国官方网站:Lenovo法国
2018/10/18 全球购物
俄罗斯电动工具和设备购物网站:Vseinstrumenti.ru
2020/11/12 全球购物
编写strcpy函数
2014/06/24 面试题
教师个人师德工作总结2015
2015/05/12 职场文书
歼十出击观后感
2015/06/11 职场文书
2016新年年会主持词
2015/07/06 职场文书