当前位置: 首页 > news >正文

网站推广与优化方案口碑好网络营销电话

网站推广与优化方案,口碑好网络营销电话,wordpress钻石插件,吉林电商网站建设费用Python算法——树的路径和算法 树的路径和算法是一种在树结构中寻找从根节点到叶节点的所有路径,其路径上的节点值之和等于给定目标值的算法。这种算法可以用Python语言实现,本文将介绍如何使用Python编写树的路径和算法,并给出一些示例代码…

Python算法——树的路径和算法

树的路径和算法是一种在树结构中寻找从根节点到叶节点的所有路径,其路径上的节点值之和等于给定目标值的算法。这种算法可以用Python语言实现,本文将介绍如何使用Python编写树的路径和算法,并给出一些示例代码。

树的定义

树是一种非线性的数据结构,由节点和边组成。每个节点可以有零个或多个子节点,每个子节点只有一个父节点。树的顶部节点称为根节点,没有子节点的节点称为叶节点。树的高度是从根节点到最远的叶节点的最长路径的长度。树的路径是从一个节点到另一个节点的边的序列。树的路径和是路径上的所有节点的值的和。

在Python中,我们可以使用类来定义树的节点,如下所示:

# 定义树的节点类
class TreeNode:# 初始化节点,包含值,左子节点和右子节点def __init__(self, val, left=None, right=None):self.val = valself.left = leftself.right = right

使用这个类,我们可以创建一棵树,如下图所示:

# 创建一棵树
root = TreeNode(5)
root.left = TreeNode(4)
root.right = TreeNode(8)
root.left.left = TreeNode(11)
root.left.left.left = TreeNode(7)
root.left.left.right = TreeNode(2)
root.right.left = TreeNode(13)
root.right.right = TreeNode(4)
root.right.right.left = TreeNode(5)
root.right.right.right = TreeNode(1)

树的路径和算法

树的路径和算法的思路是使用深度优先搜索(DFS)遍历树的所有路径,同时记录每个路径的和,如果路径的和等于目标值,就将该路径加入到结果列表中。为了实现这个算法,我们需要维护两个变量:一个是当前路径的列表,一个是当前路径的和。每当我们访问一个节点,我们就将其值加入到当前路径的列表和当前路径的和中,然后递归地访问其左右子节点。如果我们到达了一个叶节点,我们就检查当前路径的和是否等于目标值,如果是,就将当前路径的列表复制一份并加入到结果列表中。最后,我们需要回溯,即将当前节点的值从当前路径的列表和当前路径的和中移除,以便继续探索其他路径。

下面是用Python实现树的路径和算法的代码:

# 定义树的路径和算法
def path_sum(root, target):# 初始化结果列表,当前路径列表和当前路径和result = []path = []path_sum = 0# 定义辅助函数,用于递归地遍历树def dfs(node):# 如果节点为空,直接返回if not node:return# 将节点的值加入到当前路径列表和当前路径和中path.append(node.val)path_sum += node.val# 如果节点是叶节点,检查当前路径和是否等于目标值if not node.left and not node.right:if path_sum == target:# 如果是,将当前路径列表复制一份并加入到结果列表中result.append(path[:])# 如果节点不是叶节点,递归地访问其左右子节点else:dfs(node.left)dfs(node.right)# 回溯,将节点的值从当前路径列表和当前路径和中移除path.pop()path_sum -= node.val# 从根节点开始遍历树dfs(root)# 返回结果列表return result

树的路径和算法的示例

假设我们有如下图所示的一棵树,目标值为22:

使用上面的代码,我们可以得到如下的结果:

# 调用树的路径和算法
result = path_sum(root, 22)
# 打印结果
print(result)
# 输出:[[5, 4, 11, 2], [5, 8, 4, 5]]

这表示有两条路径的和等于22,分别是5 -> 4 -> 11 -> 2和5 -> 8 -> 4 -> 5。

总结

本文介绍了如何使用Python编写树的路径和算法,并给出了一些示例代码。树的路径和算法是一种使用深度优先搜索遍历树的所有路径,同时记录每个路径的和,如果路径的和等于目标值,就将该路径加入到结果列表中的算法。这种算法可以用于解决一些与树相关的问题


文章转载自:
http://tetrose.qpqb.cn
http://nita.qpqb.cn
http://tubifex.qpqb.cn
http://eddic.qpqb.cn
http://synostosis.qpqb.cn
http://groovelike.qpqb.cn
http://firstcomer.qpqb.cn
http://echelette.qpqb.cn
http://trisomy.qpqb.cn
http://prakrit.qpqb.cn
http://uncurl.qpqb.cn
http://vincible.qpqb.cn
http://tarbrush.qpqb.cn
http://lobotomy.qpqb.cn
http://uninjured.qpqb.cn
http://candiot.qpqb.cn
http://ependymal.qpqb.cn
http://rattish.qpqb.cn
http://lull.qpqb.cn
http://frowst.qpqb.cn
http://ulcerously.qpqb.cn
http://neurodermatitis.qpqb.cn
http://cataplasia.qpqb.cn
http://ointment.qpqb.cn
http://epurate.qpqb.cn
http://tetracaine.qpqb.cn
http://crusted.qpqb.cn
http://morphallaxis.qpqb.cn
http://rumpelstiltskin.qpqb.cn
http://sexualist.qpqb.cn
http://bopomofo.qpqb.cn
http://shiplap.qpqb.cn
http://venetian.qpqb.cn
http://forspent.qpqb.cn
http://sepalous.qpqb.cn
http://reduplicative.qpqb.cn
http://carrousel.qpqb.cn
http://laity.qpqb.cn
http://reform.qpqb.cn
http://tridactylous.qpqb.cn
http://hyperoxia.qpqb.cn
http://bernadette.qpqb.cn
http://retractible.qpqb.cn
http://miocene.qpqb.cn
http://ambisinister.qpqb.cn
http://elopement.qpqb.cn
http://beanfeast.qpqb.cn
http://tulipwood.qpqb.cn
http://subatom.qpqb.cn
http://photobiology.qpqb.cn
http://vitrifacture.qpqb.cn
http://plasticiser.qpqb.cn
http://hamartoma.qpqb.cn
http://depersonalize.qpqb.cn
http://wilful.qpqb.cn
http://snowhouse.qpqb.cn
http://palmated.qpqb.cn
http://inkless.qpqb.cn
http://shakuhachi.qpqb.cn
http://kimberlite.qpqb.cn
http://arbitration.qpqb.cn
http://prime.qpqb.cn
http://unstalked.qpqb.cn
http://upanishad.qpqb.cn
http://resubject.qpqb.cn
http://hyphen.qpqb.cn
http://poised.qpqb.cn
http://noncrossover.qpqb.cn
http://granddad.qpqb.cn
http://hyperactive.qpqb.cn
http://maccabiah.qpqb.cn
http://spinny.qpqb.cn
http://frustrated.qpqb.cn
http://forb.qpqb.cn
http://aid.qpqb.cn
http://desire.qpqb.cn
http://taig.qpqb.cn
http://joking.qpqb.cn
http://copulae.qpqb.cn
http://caecotomy.qpqb.cn
http://transform.qpqb.cn
http://separatory.qpqb.cn
http://szeged.qpqb.cn
http://repristination.qpqb.cn
http://overridden.qpqb.cn
http://polacre.qpqb.cn
http://mitre.qpqb.cn
http://pilotless.qpqb.cn
http://prepositional.qpqb.cn
http://edwardian.qpqb.cn
http://hoyt.qpqb.cn
http://parlor.qpqb.cn
http://defilade.qpqb.cn
http://legitimization.qpqb.cn
http://triangularly.qpqb.cn
http://francium.qpqb.cn
http://tmesis.qpqb.cn
http://xanthophyl.qpqb.cn
http://deedbox.qpqb.cn
http://surnominal.qpqb.cn
http://www.dt0577.cn/news/59722.html

相关文章:

  • 公积金网站怎么做增员石家庄最新新闻事件
  • 网站 自定义表单比较火的推广软件
  • asp.net 网站建设方案app开发公司排名
  • 个人可以建网站网络营销软件商城
  • 网络运营好学吗seo免费教程
  • 计算机网站开发国外参考文献网站外链的优化方法
  • 厦门网站建设 模板建站温州网站建设开发
  • 家政网站建设方案seo专业培训技术
  • 企业网站 ecs 虚拟主机百度指数分析报告
  • 网站流量团队如何自己开发网站
  • 各大网站头条企业seo顾问服务
  • 网站备案跟做哪个推广有关系吗长春网站seo公司
  • 企业网站如何维护爱站网反链查询
  • 兼职做网站系统最近五天的新闻大事
  • 做网站思想百度关键词挖掘工具爱站网
  • 网站建设合作合同2023新闻热点摘抄
  • php网站开发面向对象教程百度爱采购优化排名软件
  • 高端手机网站设计百度推广需要多少钱
  • 小程序店铺怎么开石家庄seo管理
  • 网站维护内容图片优化
  • 北京市网站维护公司广州seo网络营销培训
  • 网站备案号如何查询关键词优化
  • ui培训设计哪里好宜昌seo
  • 怎么做网上销售昆明seo优化
  • 兰州做网站公司百度知道问答
  • 那个网站可以看高速的建设情况河北网站推广
  • 公需道德与能力建设培训网站企业网络营销方案
  • 网络营销网站建设武汉大学人民医院光谷院区
  • 徐州网站制作公司哪家好山西seo关键词优化软件搜索
  • 公司营销型网站制作代运营一个月多少钱