python —— 满二叉树的广度优先遍历
代码:
# 2**n - 1 # 全二叉树
# n=4 2**4 - 1 = 15
import random
node_v = [2,3,5,7,11,0,17,19,23,0,0,0,0,41,43]
# node_v = list(range(0, 15))
# random.shuffle(node_v)
# print(node_v) # [14, 4, 12, 0, 1, 13, 9, 11, 3, 5, 6, 10, 2, 7, 8]# [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14]
class TreeNode:def __init__(self, val=0, left=None, right=None):self.val = valself.left = leftself.right = right
node_list = [TreeNode(i) for i in node_v] # 初始化生成所有节点
node_list[5], node_list[9], node_list[10], node_list[11], node_list[12] = None, None, None, None, None
print(node_list)for i in range(len(node_list)): # 将父节点与左右节点进行连接node = node_list[i] # TreeNode对象if 2*i+1 < len(node_list):if node != None:node.left = node_list[2*i+1] # node.left == Noneif 2*i+2 < len(node_list):if node != None:node.right = node_list[2*i+2]"""
i = int(input("输入父节点索引号"))
f_node = node_list[i]
left_node = f_node.left
right_node = f_node.right
print(f"父节点:{f_node.val}")
print(f"左子节点:{left_node.val if left_node else None}")
print(f"右子节点:{right_node.val if right_node else None}")
"""root_node = node_list[0]
# 广度优先, 从根节点开始,按层遍历所有节点
temp_list = [root_node, ]
while temp_list:node = temp_list.pop(0)print(node.val)if node.left:temp_list.append(node.left)if node.right:temp_list.append(node.right)
运行效果:

本博客是博主个人学习时的一些记录,不保证是为原创,个别文章加入了转载的源地址,还有个别文章是汇总网上多份资料所成,在这之中也必有疏漏未加标注处,如有侵权请与博主联系。
如果未特殊标注则为原创,遵循 CC 4.0 BY-SA 版权协议。
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/997382.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!相关文章
切比雪夫多项式与数值最优化算法收敛率的关系
考虑典型的二次极小化问题
\[\begin{equation}\tag{1}
\min_{\mathbf{x}\in\mathbb{R}^{n}} f(\mathbf{x})=\frac{1}{2}\mathbf{x}^{\top}A\mathbf{x}-\mathbf{b}^{\top}\mathbf{x},
\end{equation}
\]其中 \(A\in\mat…
恰好被k个区间覆盖的点的数量
8 - 11 - 模型描述
在数轴上,有 \(n\) 个区间,对于第 \(i\) 个区间覆盖的区间为 \([l_i, r_i]\) ,现在你要求出所有 \(k \in [1, n]\),恰好被 \(k\) 个区间覆盖的点的个数。
2 - 做法
对于模型的描述,很容易想到用…
Day59(29)-F:\vs_ai_work\vue-tlias-management
ElementPlus员工管理查询清空<div class="container"><el-button type="primary" @click="addEmp">+新增员工</el-button><el-button type="danger" @c…
windriver 第5章:USB 概述
本章将探讨通用串行总线(USB)的基本特性,并介绍 WinDriver USB 的功能与架构。ℹ️ 说明
本章中提及的 WinDriver USB 工具包,均指用于开发 USB 主机驱动程序的标准 WinDriver USB 工具包。5.1 USB 简介
USB(通用…
Airflow - from airflow import DAG and from airflow.sdk import DAG, which one is better?
Airflow - from airflow import DAG and from airflow.sdk import DAG, which one is better?Short answer:
✔ from airflow.sdk import DAG is better for Airflow 3 (and later).
✔ from airflow import DAG is t…
langchain工具上下文
在langchain Tools工具的基础使用中,工具方法的参数是由大模型生成schema来调用的。除了schema定义的参数外,tools还有一类特定的内置参数:runtime。
runtime是一个内部定义好的ToolRuntime类型结构,里面有state、…
货代邮件自动化处理系统设计文档
货代邮件自动化处理系统设计文档1. 项目概述
1.1 背景
作为一家货代公司,业务核心在于接收客户的“托书”(Booking Note),录入订单系统,并进行后续操作。目前该过程依赖人工查阅邮件、解析文档和录入数据,效率低…
吐血整理!新房全包装修,性价比之王大盘点 - 品牌测评鉴赏家
吐血整理!新房全包装修,性价比之王大盘点一、2025 家装市场现状:投诉激增,选对公司就是省钱
(一)行业痛点直击
2024 年,上海市消保委数据如同一记警钟,在平静的家装湖面掀起惊涛骇浪。当年,上海家装投诉量飙升…
DSU on array
8 - 3DSU on array 是一种把并查集用于一维数组上的技巧,用来维护数组中下一处未处理的位置。简单的说,如果某个位置 \(i\) 已被处理,我们希望下一次访问它时自动跳转到下一个没有被处理的位置 \(j\)。
1 - 适用场景…
Resources资源同步加载、异步加载、卸载
1. Unity Resources 同步加载资源(Resources.Load)Unity 提供了 Resources 文件夹和 API 来动态加载资源,可以在运行时通过代码获取所需资源,避免繁琐的拖拽操作。1.1 作用动态加载 Resources 文件夹下指定路径的资…
新房全包装修怎么选?这 3 类高性价比公司帮你省心省钱(附 2025 口碑红榜) - 品牌测评鉴赏家
新房全包装修怎么选?这 3 类高性价比公司帮你省心省钱(附 2025 口碑红榜)装修避坑必看:42%纠纷因合同漏项,60㎡两房9.8万全包还省15㎡空间。选装修公司认准自有工人、零增项合同和10年水电质保,盛世和家等品牌用…
无参和有参URL的定义
1.无参URL
就是正常的@app.route("/profile")
@app.route(/profile)
def profile():return 这是profile页面2.有参URL
2.1.path传参,怕死传参
@app.route("/blog/<int:blog_id>")
@app.rout…
【Ubuntu】系统下VScode配置ESP-IDF插件esp-clang和Python 3报错问题
引言
使用 Ubuntu 系统配置 ESP32 的 VScode 环境的时候遇到了两个问题:
一、
Command failed: /usr/bin/python3 /home/shf/esp32/
esp-idf/tools/idf_tools.py install esp-clang二、
non zero exit code 1 ESP-IDF…
新房装修不迷路!十大公司深度评测,盛世和家登顶榜首 - 品牌测评鉴赏家
新房装修不迷路!十大公司深度评测,盛世和家登顶榜首还记得拿到新房钥匙的那一刻吗?指尖触碰到冰凉金属的瞬间,脑海里早已勾勒出沙发摆放的位置、阳台养花的角落,连孩子房间的卡通壁纸都有了清晰模样。可这份喜悦没…
windriver 第6章:使用DriverWizard
本章介绍WinDriver的DriverWizard工具及其硬件诊断和驱动程序代码生成功能。
6.1 概述
DriverWizard(包含在WinDriver工具包中)是一款图形用户界面(GUI)工具,主要面向硬件和驱动程序开发的两个核心阶段:
硬件诊断…
vue 中支持不定高的虚拟滚动的表格 vxe-table 的使用,动态高度虚拟列表高性能表格
vue 中支持不定高的虚拟滚动的表格 vxe-table 的使用,动态高度虚拟列表高性能表格,项目的中有些场景不仅需要加载大数据量的表格,同时也要支持不固定高度,同时需要自适应行高的表格,这时候 vxe-table 就排上用场了…
windriver 第4章:PCI Express 概述
4.1 概述
PCI Express(PCIe)总线架构(前身为3GIO,即第三代输入/输出技术)由英特尔联合IBM、戴尔、康柏、惠普和微软等领先企业共同推出,旨在未来成为个人计算机输入/输出(PC I/O)的主流标准。
相较于标准PCI 2…
GROMACS 2025.4安装(非root用户)
一、准备条件
centos7只能安装24年miniconda,再升级
1. 安装最新版本的C和C++编译器。
conda activate
conda install -c conda-forge cxx-compiler c-compiler
2. CMake 3.28或更高版本。
conda install cmake
3. 安…
MATLAB R2025a免费下载安装教程与激活教程超详细图文步骤(附安装包)
目录一、MATLAB R2025a介绍二、MATLAB R2025a下载安装包三、MATLAB R2025a安装教程(10步,每步带重点)1. 解压安装包——路径别带中文!2. 进Setup文件夹找安装程序3. 右键“管理员运行”——权限必须够4. 选“我有文…