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在linux中输出带颜色的文字的方法
Jun 19 Python
python利用rsa库做公钥解密的方法教程
Dec 10 Python
Python SqlAlchemy动态添加数据表字段实例解析
Feb 07 Python
Python读取csv文件分隔符设置方法
Jan 14 Python
python多进程重复加载的解决方式
Dec 13 Python
Python调用Windows API函数编写录音机和音乐播放器功能
Jan 05 Python
关于Pytorch的MNIST数据集的预处理详解
Jan 10 Python
Python实现ATM系统
Feb 17 Python
Django 解决model 反向引用中的related_name问题
May 19 Python
Python自带的IDE在哪里
Jul 01 Python
PyCharm2020.1.1与Python3.7.7的安装教程图文详解
Aug 07 Python
详解python内置模块urllib
Sep 09 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中调用JAVA
2006/10/09 PHP
用PHP和ACCESS写聊天室(一)
2006/10/09 PHP
PHP调用Twitter的RSS的实现代码
2010/03/10 PHP
php命名空间学习详解
2014/02/27 PHP
PHP超牛逼无限极分类生成树方法
2015/05/11 PHP
php基础设计模式大全(注册树模式、工厂模式、单列模式)
2015/08/31 PHP
PHPExcel在linux环境下导出报500错误的解决方法
2017/01/26 PHP
PHP字符串中抽取子串操作实例分析
2019/06/22 PHP
php array 转json及java 转换 json数据格式操作示例
2019/11/13 PHP
PHP ob缓存以及ob函数原理实例解析
2020/11/13 PHP
js计算页面刷新的次数
2009/07/20 Javascript
JavaScript中window、doucment、body的解释
2013/08/14 Javascript
JavaScript中按位“异或”运算符使用介绍
2014/03/14 Javascript
js函数定时器实现定时读取系统实时连接数
2014/04/30 Javascript
jQuery插件passwordStrength密码强度指标详解
2016/06/24 Javascript
jQuery ui autocomplete选择列表被Bootstrap模态窗遮挡的完美解决方法
2016/09/23 Javascript
javascript实现非常简单的小数取整功能示例
2017/06/13 Javascript
微信小程序中页面FOR循环和嵌套循环
2017/06/21 Javascript
对vuex中getters计算过滤操作详解
2019/11/06 Javascript
python判断windows系统是32位还是64位的方法
2015/05/11 Python
对numpy中shape的深入理解
2018/06/15 Python
python版opencv摄像头人脸实时检测方法
2018/08/03 Python
python调用matlab的m自定义函数方法
2019/02/18 Python
Pytorch使用MNIST数据集实现基础GAN和DCGAN详解
2020/01/10 Python
Python写捕鱼达人的游戏实现
2020/03/31 Python
Python任务调度利器之APScheduler详解
2020/04/02 Python
海淘零差价,宝贝全球购: 宝贝格子
2016/08/24 全球购物
美国女孩服装购物网站:Justice
2017/03/04 全球购物
欧舒丹俄罗斯官方网站:L’OCCITANE俄罗斯
2019/11/22 全球购物
工商管理实习自我鉴定
2013/09/28 职场文书
会计毕业自我鉴定
2014/02/05 职场文书
大学迎新晚会主持词
2014/03/24 职场文书
中国文明网向国旗敬礼活动精彩寄语2014
2014/09/27 职场文书
运动会广播稿200米(5篇)
2014/10/15 职场文书
孔繁森观后感
2015/06/10 职场文书
JDK8中String的intern()方法实例详细解读
2022/09/23 Java/Android