算法学习14:二叉树的宽度优先遍历

漫画:二叉树系列 第二讲(层次遍历与BFS) 在上一节中,我们通过例题学习了二叉树的DFS(深度优先搜索),其实就是沿着一个方向一直向下遍历。那我们可不可以按照高度一层一层的访问树中的数据呢?当然可以,就是本节中我们要讲的BFS(宽... 阅读详情

分析

宽度优先遍历使用队列,先进先出,弹出就先放左再放右

代码
void levelOrder(Tree* head){
	queue<Tree*> t;
	if(head==nullptr){
		return;
	}
	t.push(head);
	while(!t.empty()){
		head=t.front();
		cout<<t.front()->val;
		if(head->left!=nullptr){
			t.push(head->left);
		}
		if(head->right!=nullptr){
			t.push(head->right);
		}
		t.pop();
	}
}

完整代码

#include<iostream>
#include<queue>
using namespace std;

//结构体定义
class Tree
{
public:
	int val;
	Tree* left;
	Tree* right;
	Tree(int x) {
		this->val = x;
		this->left = NULL;
		this->right = NULL;
	}
};

void levelOrder(Tree* head) {
	queue<Tree*> t;
	if (head == nullptr) {
		return;
	}
	t.push(head);
	while (!t.empty()) {
		head = t.front();
		cout << t.front()->val;
		if (head->left != nullptr) {
			t.push(head->left);
		}
		if (head->right != nullptr) {
			t.push(head->right);
		}
		t.pop();
	}
}

int main()
{
	Tree* head = new Tree(5);
	head->left = new Tree(3);
	head->left->left = new Tree(2);
	head->left->right = new Tree(4);
	head->right = new Tree(8);
	head->right->left = new Tree(6);
	head->right->right = new Tree(10);
	head->right->left->right = new Tree(7);

	levelOrder(head);
	system("pause");
	return 0;
}

SDT算法及其在过程数据压缩中的应用 立即下载

相关推荐

旋转门算法

旋转门算法 C# 实时数据存储压缩

二叉树的宽度(广度)优先遍历C++

二叉树的宽度优先遍历,又叫广度优先遍历、层序优先遍历。二叉树的宽度优先遍历可以使用队列完成。

ymhdt的博客 1980

Office Tool Plus:正版Office干净部署指南

Office部署是Windows新机配置的关键环节,涉及版本选择、架构匹配、语言支持与合规激活等基础技术问题。其核心原理基于微软官方Office Deployment Tool(ODT)的声明式XML配置机制,通过标准化流程确保安装可复现、可审计、无第三方捆绑。技术价值在于规避官网安装器的版本锁定、架构误配和语言缺失等常见风险,提升部署稳定性与安全性。典型应用场景包括企业批量部署、IT运维标准化、隐私敏感型用户自主安装。本文以Office Tool Plus为实践载体,深入解析ODT底层逻辑、XML配置规范

1185

二叉树的宽度优先遍历和深度优先遍历

二叉树的宽度优先遍历和深度优先遍历 1.宽度优先遍历: 即从根节点开始依次遍历左子节点和右子节点,直到所有子节点都变遍历完为止。 例如: (此二叉树图片来源于网络) 遍历顺序为:从根节点1开始依次遍历左子节点2和右子节点3,下一步分别以左右子节点为根节点,分别遍历对应的左右子节点4,5和6,7。 即最终的遍历顺序为:1234567 2.深度优先搜索 即从根节点开始一直遍历左子节点,直到左子...

愿得一人心&&的博客 4809

开源代码分享(29)-基于拉丁超立方抽样的风光场景生成和削减

作为分层抽样方法的一 种,拉丁超立方抽样具有良好的抽样精度和效率[14]。本文使用多场景方法来描述可再生能源(风电、光伏)的不确定性。以风电功率为例,首先假定风电功率服从正态分布 N(μ, δ 2 ),μ 为预测值的期望值,δ 为其波动的百分比。接着,采用拉丁超立方抽样[21]生成大量服从概率分布约束的风电出力场景,并采用考虑 Kantorovich 距离[22]的场景削减技术处理该场景,进行场景削减。最后,导出具有相应概率的削减之后的场景。

配电网和matlab的博客 923

实战:RK3568 Android14 点亮 LVDS 屏幕

4组数据 (D0~D3) + 1组时钟 (CLK)。最大支持 1280x800 @ 60Hz。8组数据 (Even03, Odd03) + 2组时钟。支持 1080P 及以上。/ {/* 背光与电源 *//** 关键配置:数据格式映射* 可选值: "jeida-18", "jeida-24", "vesa-24"* 6位屏选 xx-18, 8位屏选 xx-24* 颜色不对(偏色/底片效果)就换 VESA <-> JEIDA*/

qq_33427070的博客 1165

二叉树的宽度优先遍历BFS:按层的遍历方式,请你用队列实现DFS,或者请你用栈实现BFS

1)二叉树的深度优先遍历DFS用栈来实现,或者递归直接简单地实现,二叉树的宽度优先遍历BFS用队列实现,这和图一样。 2)请你用队列实现DFS,或者请你用栈实现BFS,考的是让你用队列实现栈的能力,用栈实现队列的能力。 3)笔试求AC,可以不考虑空间复杂度,但是面试既要考虑时间复杂度最优,也要考虑空间复杂度最优。

weixin_46838716的博客 1129

在 ABAP 中把变量一次写对:深入理解 FINAL 内联声明与不可变变量

摘要:ABAP中的FINAL声明操作符用于定义不可变变量,强调"当前上下文中的唯一写位置",能有效防止变量被意外修改,提升代码健壮性和可读性。官方建议优先在单次赋值的场景使用FINAL替代DATA。其核心规则包括:1)写位置唯一但可多次执行(如循环内);2)不创建块级作用域;3)对引用变量仅约束引用本身而非对象内容。典型适用场景包括:结果值只读、输入快照保存和中间结果保护。例外情况如游标变量不适用,因需多次写操作。正确使用FINAL可显著降低代码维护风险。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 1046

二叉树的遍历方法(宽度优先搜索和深度优先搜索)

​​二叉树的遍历策略主要有两种,一种是深度优先遍历,一种是广度优先遍历(也叫宽度优先遍历)。 ​ (1)深度优先搜索(DFS) ​在这个策略中,我们采用深度作为优先级,从根节点开始一直到达某个叶子节点,然后再到另外一个分支。深度优先搜索根据根节点被搜索的次序可以分为前序遍历,中序遍历和后续遍历。 1)前序遍历,先访问根节点,然后遍历左子树,最后遍历右子树。 ...

littlewutianlu的博客 2155

Dify使用教程3:Dify创建工作流

Dify使用教程3:Dify创建工作流 接着,我们连接下一个节点:“LLM”填入上下文变量为:result。这时候知识库就添加成功了。添加新节点:结束节点。

拥抱具身智能,昇腾Ascend C 5129

JumpServer未授权访问漏洞 CVE-2023-42442

JumpServer 是全球首款完全开源的堡垒机, 使用GNU GPL v2.0 开源协议, 是符合4A 的专业运维审计系统。 JumpServer 使用Python / Django 进行开发。2021年1月15日,阿里云应急响应中心监控到开源堡垒机JumpServer发布更新,修复了一处远程命令执行漏洞。由于 JumpServer 某些接口未做授权限制,攻击者可构造恶意请求获取到日志文件获取敏感信息,或者执行相关API操作控制其中所有机器。

holyxp的博客 1424

二叉树的遍历方法

二叉树的遍历方法分为与,其中深度优先遍历又以根节点的访问时机分为与,而宽度优先遍历(层序遍历)则是一层一层往下遍历。

m0_73042050的博客 229

数据分析必问:Pandas面试题及参考答案

DataFrame是Pandas库中的一个核心数据结构,它类似于Excel中的表格,可以存储不同类型的数据。在Pandas中,抽样操作通常很简单,但是需要根据数据的特点和分析的需求来选择合适的抽样方法。数据标准化和归一化是数据预处理中常用的技术,目的是将数据调整到一个合适的范围内,以消除不同特征量纲和数值范围的差异,从而保证模型训练的有效性。CSV文件是一种文本文件,其中的数据以逗号分隔。不平衡数据集指的是数据集中各类别样本的数量差异较大的情况,这可能导致模型训练出现偏差,影响模型的泛化能力。

大模型大数据攻城狮的专栏 3009

二叉树层次遍历c语言_基础扫盲:二叉树系列 第二讲(层次遍历与BFS)

来源:浩仔讲算法作者:浩仔讲算法在上一节中,我们通过例题学习了二叉树的DFS(深度优先搜索),其实就是沿着一个方向一直向下遍历。那我们可不可以按照高度一层一层的访问树中的数据呢?当然可以,就是本节中我们要讲的BFS(宽度优先搜索),同时也被称为广度优先搜索。我们仍然通过例题进行讲解:01第102题:二叉树的层次遍历第102题:给定一个二叉树,返回其按层次遍历的节点值。(即逐层地,从左到右...

weixin_39672011的博客 180

【ARMv9 DSU-120 系列 1 -- DSU-120 DynamIQ 概述】

ARMv9架构中的DynamIQ™ Shared Unit-120(简称DSU-120)为一组基于Cortex-A类架构的核心提供了共享的L3内存系统、窥探控制(snoop control)和 过滤(filtering) 以及其他支持集群运作的控制逻辑。这个集群被称为DSU-120 DynamIQ™集群。此外,所有连接到片上系统(SoC)的外部接口也都是通过DSU-120提供的。一个DSU-120 DynamIQ™集群可以包含1到14个核心,且同一集群中可包含多达三种不同类型的核心。

CodingCos的博客 1186

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

js用递归遍历多维数组_漫画:二叉树系列 第二讲(层次遍历与BFS)

在上一节中,我们通过例题学习了二叉树的DFS(深度优先搜索),其实就是沿着一个方向一直向下遍历。那我们可不可以按照高度一层一层的访问树中的数据呢?当然可以,就是本节中我们要讲的BFS(宽度优先搜索),同时也被称为广度优先搜索。我们仍然通过例题进行讲解:01:第102题:二叉树的层次遍历第102题:给定一个二叉树,返回其按层次遍历的节点值。(即逐层地,从左到右访问所有节点)。例如:给定二叉树: [3...

weixin_39890629的博客 173

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

通过理解遍历规则和实现逻辑,能更轻松地应对二叉树相关的算法题(如求深度、找路径、判断对称等),是学习树结构的核心基础

• 用途最广:二叉搜索树(BST)中,中序遍历天然得到**升序序列**,因此几乎所有 BST 操作(查找、验证、范围查询、转双向链表等)都会用到。 • 面试高频:手写中序非递归(栈实现)几乎是算法面试必考题。

[Blog][Domain] programb.blog.youkuaiyun.com 1027

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

二叉树学习总结(Java实现)

最近学习二叉树,做一些总结,内容包括: 1.创建二叉树 2.递归方法:先序 中序 后序 3.非递归:先序 中序 后序 4.宽度优先搜索 5.寻找父节点 如果有错误,还请及时指出,谢谢! 1 import java.util.LinkedList; 2 import java.util.Scanner; 3 import java.util.Stack; ...

dianke4075的博客 272

我的算法笔记六 | 二叉树

在进入今天的二叉树的笔记之前,先简单回顾一下最近算法的学习内容。用了7周的时间,将基本的数据结构都过了一遍,并针对每个数据结构进行了练习。整体来说,对自己的进度还是非常满意的。另外这一遍刷题也明显手感要好一些了。努力不会白费! 距离当初设立的flag ,时间正好过半。刷题46道。整体进度还行。 Flag:从4.11 --6.30 刷100题 本文总结二叉树的几种常见题型 二叉树 结构描述: Class Node { V value; Node left; Node right; } 二叉树的

博学之,审问之,慎思之,明辨之,笃行之 271

【实战篇】 第14期 算法竞赛_数据结构超详解(下)

【你奶奶都能听懂的算法数据结构】 第14 期 数据结构 ok,我们书接上回,上一期我们学习了在算法竞赛中数据结构相关的知识,一起学习了顺序表、链表、双向链表、栈、队列这几个数据结构。今天我们来学习下半部分,内容包括:树、二叉树、堆、红黑树、哈希表这几个数据结构在学习篇中我们已经超详细的讲解了树相关的知识,这里补充两点:所谓的无序树简单来说就是,一棵树上下关系保证不变,同一层的节点顺序可以更换• 有根树:树的根节点已知,是固定的。 • ⽆根树:树的根节点未知,谁都可以是根结点。在竞赛中一般的树形结构是一个无序

2501_93298789的博客 1013

Python 刷题笔记:二叉树专题二

昨天接触了二叉树中的前中后三序遍历的代码实现,今天来看剩下的那种层序遍历。 题目一 第 102 题:二叉树的层序遍历 难度:中等 给你一个二叉树,请你返回其按 层序遍历 得到的节点值。 (即逐层地,从左到右访问所有节点)。 示例: 二叉树:[3,9,20,null,null,15,7], 3 / \ 9 20 / \ 15 7 返回其层次遍历结果: [ [3], [9,20], [15,7] ] 题目分析 看其输出格式,是将二叉树每层的节点放到单独的列

TEDxPY 823

面试考察率100%的算法题,都给你整理好了(包含PDF已开放下载)

之前和同为面试官的朋友闲聊的时候发现,有些求职者嘴上红黑树、KMP头头是道,项目经历看上去也是buff拉满,结果就面一道LRU,写半天还是个错的。 只能说想捞都捞不动!!! 作为面试官在校招/社招面了50多场,可以很负责任地告诉大家,考到二分法,双指针,字符串,动规这类题,都是真心想捞你... 而且考点都没啥变化,最多也就是题型会做出一点变化,针对这类经典算法我只能说两个字: 这里也大方分享几招...

九章算法的博客 611

2021-01-31

第三周学习总结二叉树sortDFS与BFS 二叉树 一、对二叉树的理解 二叉树的概念:一棵二叉树是节点的一个有限集合,该集合或者为空,或者由一个根节点加上两棵左子树和右子树组成 二叉树的特点: 1、每个节点最多有两棵子树,即二叉树不存在度大于2的节点 2、二叉树的子树有左右之分,其子树的次序不能颠倒 二叉树的性质: 1、若规定根节点的层数为1,则一棵非空二叉树的第i层上最多有2i-1个节点 2、若规定只有根节点的二叉树的深度为1,则深度为k的二叉树的最大节点数是2k-1 3、对任何一棵二叉树,如果其叶子节

qq_54663550的博客 434

PHP 二叉树的深度优先与广度优先遍历

1 &lt;?php 2 #二叉树的广度优先遍历 3 #使用一个队列实现 4 5 class Node { 6 public $data = null; 7 public $left = null; 8 public $right = null; 9 } 10 ...

weixin_34216036的博客 144

Binary Tree Zigzag Level Order Traversal

Binary Tree Zigzag Level Order Traversal BFS 1 public class Solution { 2 public ArrayList<ArrayList<Integer>> z...

abiding97192的博客 71

《算法和数据结构》从语言到算法的过渡篇_当语言学到什么程度可以开始学算法了(1)

O(ne) 个子问题的结果,那么我们称它为 tD/eD 的问题,于是可以总结出四类常用的动态规划方程:(下面会把opt作为取最优值的函数(一般取。表达式为真,直接返回,不再需要往下递归计算,这样就把原本的 “递归二叉树” 转换成了 “递归链”, 从而将原本指数级的算法变成了多项式级别。:二维凸包、三维凸包、旋转卡壳、多边形面积交、多边形面积并、多边形面积异或、多边形和圆的面积交、半平面交、最小覆盖圆、最小包围球、模拟退火。费时一周整理的160+网络安全面试题,金九银十,做网络安全面试里的显眼包!

m0_60691292的博客 908
上一篇: 算法学习13:分别用递归和非递归方式实现二叉树先序、中序和后序遍历
下一篇: 算法学习15:求二叉树的最大宽度
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值