数据结构学习笔记(6)---二叉树的创建与求深度

【数据结构】求二叉树深度的算法 要求二叉树的深度,方法是先求出左子树的深度,再求出右子树的深度,二叉树的深度就是左子树的深度和右子树的深度中的最大值加1. 自然而然想到用后根遍历的思想实现 主要步骤如下: 若二叉树为空,则返回0值,否则 求左子树的深度; 求右子树的深度; 将左子树、右子树深度的最大值加1并返回其值。 //求二叉树深度的算法 public int getDepth(BiTreeNode T) { if... 阅读详情
对于二叉树的创建其实就是和先序遍历差不多,可以有三种创建二叉树的的方式,即先序创建吗,中序创建和后序创建,但是我一般都是按先序创建的,原因是比较简单容易理解,但是我对于后序与中序创建二叉树好像还没见到过,应该存在但上网查了一下还是,没有呀,这里就只写先序创建二叉树
void PreCreatBiTree(PBiTree *root)
{
    int date;
    cin >> date;
    if (date ==  0)
    {
        *root = NULL;
    }
    else
    {
        *root = new BiTree;
        (*root)->date = date;
        PreCreatBiTree(&((*root)->lchild));
        PreCreatBiTree(&((*root)->rchild));
    }
}
(2)求深度(也是递归思想)
int GetDeaph(PBiTree root)
{
    int max, hRChild = 0, hLChild = 0;
    if (root == NULL)
    {
        return 0;
    }
    else
    {
        hLChild = GetDeaph(root->lchild) + 1;
        hRChild = GetDeaph(root->rchild) + 1;
        max = hRChild > hLChild ? hRChild : hLChild;
        return max;
    }
}
二叉树求深度的递归的详细分析 二叉树求深度的递归的详细分析二叉树求深度递归算法源码》数据结构:typedef struct BINODE{       TELEMETYPE data;       struct BINODE *lchild,*rchild;}BiNode,*BiTtree;》递归函数int GetTreeDeep(BiTtree T)   //计算二叉树的深度{       if(T==NULL)              return 0;       else{              int a = GetTr 阅读详情

相关推荐

递归与非递归求二叉树深度

题目 分别用递归与非递归算法求二叉树深度。 分析 方法一: 递归方法大家都很熟悉,如何用非递归求解呢? 我们知道二叉树有层序遍历,利用层序遍历的过程,记录当前层数,那么遍历结束后也就求得二叉树的层数,即深度。 方法二: 层序遍历需要使用一个队列来保存树的节点。初始化讲根节点入队。接着只要队列不为空,则出队,并将出队元素的子节点入队。 当需要记录树的深

指尖飞舞 4273

【二叉树】二叉树的创建、遍历、销毁、求树的最大深度

建立二叉树的链式存储结构,并对二叉树前序遍历、中序遍历、后序遍历以及层序遍历,求二叉树的深度,销毁二叉树。 (1)二叉树的建立 前序建立,即先建立根节点,再建立左子树,最后建立右子树,结点值的输入需要按照先序遍历的方式输入,以-1表示结点为空,例如一个深度为3的二叉树每层分别为1 ,2 3, 4 5 6 7,则应输入1 2 4 -1 -1 5 -1 -1 3 6 -1 -1 7 -1

HiPricilla的博客 6155

从零构建NVENC编码器:一个游戏开发者的实战手册

本文详细介绍了如何从零构建NVENC编码器,特别针对游戏开发者提供实战指南。内容涵盖NVENC基础概念、DirectX纹理捕获、异步编码优化及高级特性配置,帮助开发者高效集成硬件编码技术到游戏引擎中,实现高性能游戏录制和直播功能。重点解析了NVIDIA专用编码芯片的优势与API使用技巧。

weixin_29292431的博客 366

二叉树的基本内容(创建,遍历,节点个数,深度计算)

二叉树从创建到销毁,满满的递归!

qq_52777887的博客 5713

扬声器设计避坑指南:用Comsol分析反电动势对THD的影响(附案例文件)

本文深入探讨了扬声器设计中反电动势对总谐波失真的关键影响。通过COMSOL仿真,详细分析了BL值非线性、音圈电感变化等电磁-力-声耦合机制,并提供了从参数化建模到系统级优化的实战指南,帮助工程师精准量化并降低谐波失真,提升扬声器音质。

xx56789的博客 522

人形机器人解耦驱动腿部设计与FAST性能优化

机器人运动控制的核心在于动力学解耦与能量效率优化。通过多连杆机构设计,可以实现关节运动的独立控制,显著降低惯性叠加和能量损耗。DecARt Leg采用创新的齿轮-四杆复合机构,将腿部伸缩与摆动运动完全解耦,配合多杆踝关节传动系统,实测行走速度可达4.18m/s。这种解耦设计不仅提升了动态性能,其提出的FAST指标更为腿部构型提供了量化评估基准,在仓储物流、地形适应等场景展现出显著优势,为人形机器人运动控制提供了新的技术路径。

weixin_33759613的博客 239

二叉树的建立与先序输出、求树的深度。

算法步骤: 读入字符串如果为'#'则表明此二叉树为空树。否则申请一个空间,将ch的值给bt->data。递归创建左子树,右子树。 输入之前应先将二叉树补全即: 创建二叉树: void creat_binary(BT &bt) { //先序创建二叉树 char ch; cin >> ch; if (ch == '#') //如果ch==#则bt为空树 bt = NULL; else { bt = new binary_tree; bt-&

qq_35814058的博客 801

Unity中基于SkinMeshRenderer的骨骼动画换装系统优化实践

本文深入探讨了Unity中基于SkinnedMeshRenderer的骨骼动画换装系统优化实践。针对换装卡顿、显示错误等常见问题,文章剖析了SkinnedMeshRenderer的核心数据原理,对比了“数据替换”与“实体替换”两种主流方案的性能差异,并详细阐述了通过骨骼字典缓存、对象池管理、材质合并与Draw Call优化等实战技巧,构建高性能、高稳定性的生产级换装系统。

weixin_29008055的博客 314

C/C++ 创建二叉树 和 求树的深度 算法

Description Try to implement the algorithm of creating a binary tree and calculating the depth of the tree. Translation: 尝试实现生成二叉树并计算树的深度的算法 Algorithm 详见注释 #include <iostream> using namespace std; typedef struct BitNode { //创建二叉树的结构体; char

Carizy的博客 1935

高通camera:PDAF的配置与测试

确认相关log日志都已经打开了之后,判断是在3A算法中没有应用到PDAF,可能是之前在调试AF效果的时候关闭了PDAF,打开效果文件对应的文件夹,在\kamorta_lce_S5K3P9\Scenario.Default\XML\STATS。在log中搜索af_pdaf_proc_pd_single,这个函数是pdaf算法中的,源码被封装了,这里看不到,因此只能通过log打印出来的参数来分析pd是否正确,主要参数有pd ,defocus,confidence。PDAF的配置与测试。

arvin_xiong的博客 2489

196、NPU的编译器开发:教程与示例代码编写

NPU编译器开发实战指南 摘要:本文分享了NPU编译器开发中的核心挑战与实战经验,通过具体代码示例展示了关键实现技术: 指令生成:必须考虑硬件特性(如地址对齐)和芯片配置抽象化 图优化:重点处理常见冗余结构(Reshape合并、BN融合),并注意数值稳定性 算子拆分:采用分块计算策略适配有限SRAM,需特别注意边界条件处理 内存分配:基于张量使用频率的贪心算法优化SRAM使用效率 文中包含多个真实踩坑案例: DMA地址未对齐导致硬件错误 BN融合时的除零风险 tile边界处理不当引起的精度下降 这些经验为开

m0_50546716的博客 95

二叉树深度问题

递归求解: int SECUR_BEDEPTH(BTREE T) { int ldepth=0,rdepth; if(T){ ldepth=BEDEPTH(T->lchild); rdepth=BEDEPTH(T->rchild); return ldepth>rdepth? ldepth+1:rdepth+1; ...

pony的博客 491

【YOLO目标检测全栈实战】68 模型量化:从FP32到INT8,精度不掉,速度翻倍

摘要: 模型量化能显著提升推理速度(如YOLOv5s帧率从15FPS提升至38FPS),但需避免三大误区:1)校准集需覆盖实际场景,而非随机采样;2)敏感层(如检测头)应保留FP32精度;3)预处理必须与量化前后一致。通过混合精度量化(Backbone用INT8,检测头用FP32)和逐通道量化,可实现<1%的mAP损失。关键步骤包括校准数据准备、量化感知训练及逐层精度评估,最终在Jetson Nano等边缘设备上实现速度与精度的平衡。

企鹅码农的专属播客,分享10多年的实战案例和经验解读,包含YOLO、RT-DETR、AI等各个工作领域。 146

数据结构习题——求二叉树的深度与宽度

前言 题目来自王道数据结构一书,归纳一下 正文 求二叉树的深度 递归

无由页的博客 4772

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

【数据结构】C语言实现二叉树的基本操作——二叉树的层次遍历、求深度、求结点数……

【数据结构】第五章——树与二叉树 详细介绍C语言实现二叉树的层序遍历、求二叉树的深度以及求二叉树的结点数等基本操作……

蒙奇D索大的博客 2484

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

【数据结构】树与二叉树遍历算法的应用(求叶子节点个数、求树高、复制二叉树、创建二叉树、二叉树存放表达式、交换二叉树每个结点的左右孩子)

树与二叉树:求叶子节点个数、求树高、复制二叉树、创建二叉树、二叉树存放表达式、交换二叉树每个结点的左右孩子

ChenZHIHAO_y的博客 3577

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

数据结构——lesson6二叉树基础

数据结构二叉树相关知识概念的学习

Renswc的博客 3028

数据结构上机实验——二叉树的实现、二叉树遍历、求二叉树的深度/节点数目/叶节点数目、计算二叉树度为1或2的节点数、判断二叉树是否相似

数据结构、二叉树、创建一颗二叉树、对这棵二叉树进行遍历、求二叉树的深度/节点数目/叶节点数目、计算二叉树中度为 1 或 2 的结点数、判断2棵二叉树是否相似,若相似返回1,否则返回0

Crocodile1006的博客 2543

递归法求二叉树的深度

想要计算一个二叉树的深度,我们先可以拆成求根结点的左右子树的深度;而根结点的左右子树的深度又可拆成求根左结点的左右子树深度和根右结点的左右子树的深度。这样一层一层给套下去,很容易想到递归。 明确每一步重复的任务: 计算节点左右子树的深度,并取其最大值。 确认递归的形参和返回值: 形参肯定为某节点的地址,不然算谁的子树高度呢! 返回值当然为当前子树的最大深度。这里注意,我们算出了节点的左右子树深度的最大值时,还需加1作为返回值,因为节点本身也是一层。 确认递归结束条件: 当节点为空时,递归结束。

weixin_43744293的博客 9923

[数据结构]求二叉树的深度与宽度

二叉树数据结构声明: struct TreeNode { int val; TreeNode *left; TreeNode *right; };   1、递归求二叉树深度   int getDepth(TreeNode *root) { if (root == NULL) { return 0; } re

ER_Plough的专栏 3072

C语言实现二叉树的基本操作---创建、遍历、求深度、求叶子结点

#include #include #include typedef int  ElemType; //数据类型 //定义二叉树结构,与单链表相似,多了一个右孩子结点 typedef struct BiTNode{ ElemType  data; //数据域 struct BiTNode*lChild, *rChlid; //左右子树域 }BiTNode

l494926429的博客 2万+

数据结构——二叉树的递归算法

这里包含的递归算法有: 1.@[二叉树的先序创建]; 2. 二叉树的先序中序后序遍历; 3. 二叉树的销毁算法; 4. 双序遍历; 5. 求结点的个数; 6. 求结点值的和; 7. 求树的深度; 8. 求叶子结点的个数; 9. 求单分支结点的个数; 10. 交换结点的左右子树; 11. 寻找最小值结点; 12. 判断是否是相同的二叉树; 13. 判断是否是平衡二叉树; 14. 判断是对称二叉树; ...

qq_50675813的博客 3492

【数据结构与算法】——二叉树

二叉树的概念,4中遍历方法与基本操作,超详细

2401_86940607的博客 2179

求二叉树的深度和宽度

// 求二叉树的深度和宽度.cpp : 定义控制台应用程序的入口点。 #include "stdafx.h" #include #include using namespace std; struct BTNode { char m_value; BTNode *m_left; BTNode *m_right; }; //先序创建二叉树 void Crea

2万+

二叉树的建立(二叉链表)和遍历及求二叉树的深度

二叉树的建立和遍历及求二叉树的深度 首先就说一说二叉树的建立(二叉链表) 我们需要一个先建立一个结构体来做为其结点的数据结构,其数据域用来存放结点的数值,俩个指针域分别存放其左孩子和右孩子。接下来是建立方式,我们使用先序扩展序列来建立,后台输入为一串字符,字符满足要建二叉树的先序序列,其中孩子为空的地方我们用#来表示,代码如下: BiTree CreateBiTree() { BiTree bt...

Pinyk的博客 3392
上一篇: 数据结构学习笔记(7)---二叉树递归与非递归遍历
下一篇: 链表翻转的是三种方法
KayeJohn
博客等级 码龄10年 78粉丝 63原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值