学习二叉树遍历

news2024/9/21 12:30:03

class Node{

V value;

Node left;

Node reight;

}

用递归和非递归两种方式实现二叉树的先序,中序,后续遍历

如何直观的打印一颗二叉树

如何完成二叉树的宽度优先遍历

递归序列 先序是出现的第一个数字,中序第二个,后续第三个

先序遍历(根左右)

中序遍历(左根右)

后续遍历(左右根)

先序遍历:

1.从栈中弹出一个节点car

2.打印处理car

3.先右再左

4.周而复始

中序遍历过程

得到一棵树,整棵树左边界进栈 ,一次弹出节点的过程中,打印,对弹出节点的右数周而复始,在弹出之后没有右节点弹出,有右节点看这个右节点有没有连着左节点,然后依次入栈,出栈就打印,一直是左根(右(左根(右(左根)))不断的分解右侧的节点,最终打印出来就也是左根右的结构

后序遍历过程:设置两个栈,第二个栈作为回收站,第一个栈采用根右左的顺序进栈出栈,出去的全都按照出栈顺序压到回收栈里面,当全部完事之后,输出回收站,就会得到左右根,得到后序遍历

求一颗二叉树的宽度

后面还会有二叉树的判断,一些简单烧脑的算法,都有总结出来哦

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2048886.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

兼容并蓄,高效集成:EasyCVR视频综合接入能力助力多元化项目需求

随着视频技术的不断进步,视频监控、视频直播、执法记录仪、语音可视对讲、无人机等视频资源的应用场景日益丰富。这些视频资源不仅在数量上快速增长,而且在质量、格式、编码标准等方面也呈现出多样化的特点。因此,为了有效整合这些资源&#…

5.4 视图的创建与管理

欢迎来到我的博客,很高兴能够在这里和您见面!欢迎订阅相关专栏: 工💗重💗hao💗:野老杂谈 ⭐️ 全网最全IT互联网公司面试宝典:收集整理全网各大IT互联网公司技术、项目、HR面试真题.…

【Datawhale X 魔搭 】AI夏令营第四期大模型方向,Task3:源大模型RAG实战(持续更新)

什么是RAG? RAG:检索增强生成(Retrieval Augmented Generation)。 RAG的提出背景: 在实际业务场景中,通用的基础大模型可能存在无法满足我们需求的情况,主要有以下几方面原因: 知识局…

AtCoder Beginner Contest 367 A~D

本期封面原图 画师えびら A - Shout Everyday 题意 b点睡觉c点起床&#xff0c;问你a点是不是醒着的 思路 直接判断即可&#xff0c;注意处理跨天的情况 代码 #include <bits/stdc.h> #define mod 998244353 using namespace std; typedef long long ll; typedef …

推荐 4 款知名免费的思维导图软件,强大跨平台好用,效率大大提升

TreeMind TreeMind树图是一款基于AI人工智能的在线思维导图工具&#xff0c;旨在通过简单的操作快速生成专业详尽的思维导图。它具有多种创新功能和丰富的资源库&#xff0c;能够极大地提高用户的学习和工作效率。 TreeMind树图的主要功能包括&#xff1a; AI一句话生成思维导…

汇编语言:div指令和mul指令

1. div指令 div 是除法指令&#xff0c;在8086CPU中&#xff0c;使用div做除法时&#xff0c;遵循以下规则&#xff1a; &#xff08;1&#xff09;除数&#xff1a;有8位&#xff08;1字节&#xff09;和16位&#xff08;2字节&#xff09;两种&#xff0c;放在一个寄存器&am…

移情别恋c++ ദ്ദി˶ー̀֊ー́ ) ——5.string(模拟实现)

1.存储结构 namespace zone {class string{public:private: //设置私有&#xff0c;不允许随便访问底层数据char* _str; //字符串存储空间首地址指针size_t _size; //当前字符数量size_t _capaicty; //可用容量static const size_t npos;}const size_t string::nops -1;//在类…

MATLAB中ichol函数用法

目录 语法 说明 示例 不完全 Cholesky 分解 使用 ichol 作为预条件子 使用 diagcomp 选项 ichol函数的功能是对矩阵进行不完全 Cholesky 分解。 语法 L ichol(A) L ichol(A,options) 说明 L ichol(A) 通过零填充执行 A 的不完全 Cholesky 分解。A 必须为稀疏方阵。…

西瓜书学习笔记三 归纳偏好

1.4 归纳偏好 通过学习得到的模型对应了假设空间中的一个假设。于是&#xff0c;图1. 2的西瓜版本空间给我们带来一个麻烦:现在有三个与训练集一致的假设&#xff0c;但与它们对应的模型在面临新样本的时候&#xff0c;却会产生不同的输出。现在有一个新瓜&#xff0c;一个模型…

希腊字母大写、小写、音标

▪Αα ▪Ββ ▪Γγ ▪Δδ ▪Εε或ϵ ▪Ϝϝ ▪Ζζ ▪Ηη ▪Θθ ▪Ιι ▪Κκ ▪Λλ ▪Μμ ▪Νν ▪Ξξ ▪Οο ▪Ππ ▪Ρρ ▪Σσ或ς ▪Ττ ▪Υυ ▪Φφ或ϕ ▪Χχ ▪Ψψ ▪Ωω

C语言学习——指针(定义、变量的指针和指向变量的指针变量)

目录 十、指针 10.1地址和指针的概念 10.2变量的指针和指向变量的指针变量 定义一个指针变量 指针变量的引用 指针变量作为函数参数 十、指针 10.1地址和指针的概念 我们要想了解什么是指针&#xff0c;就必须弄清楚数据在内存中是如何存储的&#xff0c;又是如何读取的…

利用EditPlus进行Json数据格式化

利用EditPlus进行Json数据格式化 git下载地址&#xff1a;https://github.com/michael-deve/CommonData-EditPlusTools.git (安装过editplus的直接将里面的json.js文件复制走就行) 命令&#xff1a;Cscript.exe /nologo “D:\Program Files (x86)\EditPlus 3\json.js” D:\P…

代码随想录算法训练营第三十天| 01背包问题 二维, 01背包问题 一维 , 416. 分割等和子集

今天是动态规划学习的第三天&#xff0c;主要的学习内容包括&#xff1a;01背包问题二维数组解法和一维数组解法&#xff0c;以及01背包问题的应用。 01背包问题 二维 题目链接&#xff1a;46. 携带研究材料&#xff08;第六期模拟笔试&#xff09; (kamacoder.com) 首先我们…

胡姓名人伟人有哪些?胡姓最厉害三个名人是谁

胡姓名人伟人有哪些?胡姓最厉害三个名人是谁? 在中国悠久的历史长河中,胡姓不仅承载着丰富的文化遗产,更是孕育出无数杰出的历史人物。这些人物以其独特的贡献和影响力,成为中华文明的重要组成部分。以下是根据历史影响力和文化贡献精心挑选的十大胡姓名人,他们的故事和成就展…

GNU/Linux - systemd介绍

systemd官网&#xff1a; System and Service Manager systemd systemd Github地址&#xff1a; https://github.com/systemd/systemd 首次发布 2010年3月30日 System and Service Manager systemd 是一套 Linux 系统的基本构件。它提供了一个系统和服务管理器&#xff0c;作为…

USB 2.0 协议专栏之 USB 配置描述符(四)

前言&#xff1a;本篇博客为手把手教学的 USB 2.0 协议栈类精品博客&#xff0c;该专栏博客侧重针对 USB 2.0 协议进行讲解。第 4 篇重点为 USB 2.0 协议中的配置描述符 Configuration Descriptors 进行讲解&#xff0c;并结合 CH32V307 与 STM32 代码进行 Configuration Descr…

【工业机器人】工业异常检测大模型AnomalyGPT

AnomalyGPT 工业异常检测视觉大模型AnomalyGPT AnomalyGPT: Detecting Industrial Anomalies using Large Vision-Language Models AnomalyGPT是一种基于大视觉语言模型&#xff08;LVLM&#xff09;的新型工业异常检测&#xff08;IAD&#xff09;方法。它利用LVLM的能力来理…

Oracle VM VirtualBox虚拟机内存不够用的解决方案

一、 前言 在使用Oracle VM VirtualBox虚拟机的过程中&#xff0c;随着时间的推移&#xff0c;我们会感觉我们的内存越来越不够用&#xff0c;今天就来给大家分享一下我们如何解决虚拟机内存不够用的问题。 二、解决方法 1.虚拟机碎片化整理 我们第一步要做的是碎片整理&…

【protobuf】ProtoBuf——proto3语法详解、enum类型、enum类型的使用和注意事项、Any类型、通讯录录入号码类型和地址的功能实现

文章目录 ProtoBuf5. proto3语法详解5.3 enum类型5.4 Any类型 ProtoBuf 5. proto3语法详解 5.3 enum类型 定义规则&#xff1a; proto3支持我们定义枚举类型并使用&#xff1a; 枚举类型的名称采用驼峰命名法且首字母大写&#xff0c;如 MyEnum &#xff0c;这样的命名方式符合…

重启人生计划-且随风行

&#x1f973;&#x1f973;&#x1f973; 茫茫人海千千万万&#xff0c;感谢这一刻你看到了我的文章&#xff0c;感谢观赏&#xff0c;大家好呀&#xff0c;我是最爱吃鱼罐头&#xff0c;大家可以叫鱼罐头呦~&#x1f973;&#x1f973;&#x1f973; 如果你觉得这个【重启人生…