Python实现深度遍历和广度遍历的方法

作者:纳尔逊皮卡丘 时间:2023-10-13 20:41:13 

深度遍历:

原则:从上到下,从左到右

逻辑(本质用递归):

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

标签:Python,深度,遍历,广度
0
投稿

猜你喜欢

  • java连接mysql数据库乱码的解决方法

    2024-01-21 06:26:15
  • JavaScript给数组添加元素的6个方法

    2024-04-30 08:46:47
  • Python自动化办公之创建PPT文件

    2022-01-16 19:31:49
  • 安装sql server 2008 management提示已安装 SQL Server 2005 Express的解决方法

    2024-01-15 12:49:03
  • php 文件缓存函数

    2023-11-06 15:28:47
  • Python程序设计入门(3)数组的使用

    2023-07-20 07:11:15
  • ASP.NET将Session保存到数据库中的方法

    2024-01-19 16:31:46
  • Pandas之缺失数据的实现

    2022-05-04 19:00:05
  • Python利用pythonping处理ping的示例详解

    2023-08-12 00:28:45
  • Python 二分查找之bisect库的使用详解

    2023-10-03 01:24:29
  • Python脚本操作Excel实现批量替换功能

    2023-06-15 16:37:57
  • 使用Selenium实现微博爬虫(预登录、展开全文、翻页)

    2022-07-09 11:00:18
  • mac安装python3后使用pip和pip3的区别说明

    2021-01-06 21:23:15
  • vue3和ts封装axios以及使用mock.js详解

    2024-04-28 09:27:47
  • MYSQL常用命令与实用技巧

    2024-01-22 05:22:25
  • 基于Vue3实现印章徽章组件的示例代码

    2023-07-02 16:54:28
  • Python基于内置函数type创建新类型

    2023-11-18 10:00:29
  • 详解如何创建并发布一个 vue 组件

    2023-07-02 16:49:08
  • 在MySQL中使用LIMIT进行分页的方法

    2024-01-20 22:27:58
  • 如何使用pyinstaller打包32位的exe程序

    2021-12-17 10:15:20
  • asp之家 网络编程 m.aspxhome.com