Python实现深度遍历和广度遍历的方法
作者:纳尔逊皮卡丘 发布时间:2023-10-13 20:41:13
标签:Python,深度,遍历,广度
深度遍历:
原则:从上到下,从左到右
逻辑(本质用递归):
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)
来源:https://blog.csdn.net/zhaobig/article/details/78649059
0
投稿
猜你喜欢
- 这篇文章主要介绍了wxpython自定义下拉列表框过程图解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要
- browsercookie 知识铺垫第一个要了解的知识点是使用 browsercookie 获取浏览器 cookie ,该库使用命令 pip
- response.getWriter().write() 功能:向前台页面显示一段信息。当在普通的url方式中,会生成一个新的页面来显示内容
- 经典程序设计问题:找第n个默尼森数。P是素数且M也是素数,并且满足等式M=2P-1,则称M为默尼森数。例如,P=5,M=2P-1=31,5和
- 1在js中只有两种作用域a:全局作用域b:函数作用域在ES6之前,js是没有块级作用域。首先来解释一下什么是没有块级作用域?所以此时 是可以
- 需求每天往一个表里面插入两条数据,但日期不同INSERT INTO test(`id`, `art_training_institution
- 1.计算长度value = "wangdianchao"# 计算字符个数(长度)number = len(value)p
- 本文实例讲述了Python下实现的RSA加密/解密及签名/验证功能。分享给大家供大家参考,具体如下:原文是py2环境,而我的环境是py3,所
- 介绍图像分类器通常在训练更多的图像时表现得更好。在图像分类模型中,一个常见的问题是,模型不能正确地对图像进行分类,只是因为它没有针对同一图像
- 简介OpenCV中使用VideoCapture类写的视频是没有音频的,如果要进一步处理音频则需要用到一个库——MoviePy,这个库是Pyt
- 前言之前写pandas和matplotlib的时候说到了想要出一期Pyechart系列数据可视化的文章。比起matplotlib,pyeac
- 安装py2app打开终端输入pip3命令安装py2app工具pip3 install py2pp安装完成后,默认会装到/Library/Fr
- Flask子域名一般用于数量比较少的子域名,一个模块对应一个子域名。先看下面一个例子:modules.py:from flask impor
- js 读取csv内容拼接成jsonformdata对象上传了csv文件,读取文件内容拼接成json对象var form = new Form
- NetCDF(网络通用数据格式)文件后缀为.nc,文件中的数据结构包含维(dimensions)、变量(variables)和属性(attr
- 一、字符串(str)字符串转换为列表使用list()方法str_1 = "1235"str_2 = 'zhang
- Windows版本下的python并没有内置串口通讯的pyserial的库,所以需要自己下载。参照了网上的教程,有许多用的pip的安装方式,
- 关于怎么获得,我想其实网上有很多答案。list.index( )获得值的索引值,但是如果list中含有的值一样,例如含有两个11,22,这样
- 我就废话不多说了,直接上代码吧!#全0和全1矩阵v1 = tf.Variable(tf.zeros([3,3,3]), name="
- 在零售、经济和金融等行业,数据总是由于货币和销售而不断变化,生成的所有数据都高度依赖于时间。如果这些数据没有时间戳或标记,实际上很难管理所有