数据结构-树-获取深度(Java语言)

求树的深度 随机给定一棵树,求树的深度 阅读详情

详细的代码可见github:

https://github.com/AbitGo/myClassWork/tree/master/workspace_ds

 两种非递归方法

public int getDepth(BiTreeNode t) {
        if (t != null) {
            int lDepth = getDepth(t.lchild);
            int rDepth = getDepth(t.rchild);
            return 1 + (lDepth > rDepth ? lDepth : rDepth);
        }
        return 0;
    }


    public int getDepth1(BiTreeNode t) {
        if (t == null) {
            return 0;
        } else if (t.rchild == null && t.lchild == null) {
            return 1;
        } else {
            return 1 + (getDepth1(t.lchild) > getDepth1(t.rchild) ? getDepth1(t.lchild) : getDepth1(t.rchild));
        }
    }

 

软件设计师之树与二叉树:非线性数据结构的深度探索 在软件开发领域,数据结构是程序设计的核心基础,其中树和二叉树作为重要的非线性数据结构,在众多场景中都有着广泛应用。我写这篇博客,就是希望和大家一起学习进步,深入解析树和二叉树的相关知识,用通俗易懂的语言结合图表和Java代码示例进行讲解,帮助大家更好地掌握这些内容。 阅读详情

相关推荐

立创·庐山派-K230-CanMV(嘉楠勘智)开发板通过ATK-ESP8266实现图像识别数据无线传输与原子云对接

本文详细介绍了如何利用立创·庐山派K230开发板与ATK-ESP8266模块实现图像识别数据的无线传输及与原子云平台的对接。通过硬件连接、环境配置、代码实现及调试技巧的讲解,为开发者提供了一套完整的物联网解决方案,特别适用于智能监控和边缘计算场景。

study的专栏 950

java 二叉树的深度和高度

二叉树

b1tb1t的博客 550

OTN设备核心知识速记

本文章为工作笔记,若有错误,还需大家指正。不定期更新。

Hiddengold的博客 2648

项目算法: 计算树形结构的深度(层数)

项目算法: 计算树形结构的深度(层数) 今天在写项目的后台管理系统时,遇到一个需要算法的地方.即拖动某一节点到另一节点时,需要判断能否达到目标节点,且达到目标节点后需要计算新的level,而这两个地方都需要计算拖动的树形结构的深度(层数).抽象出来即是下图: 这里有两种思路写这个算法,一种是递归写法(简洁),另一种是非递归写法. 下面用js语言都列出来.写法1:以抽象图为例, 下面代码中的root即...

qq_43318840的博客 2022

Stateflow使用C语言结构体,关于使用Stateflow调用外部C代码的教程介绍

无论是Simulink仿真,还是对模型做代码生成,已有C代码的调用都是我们经常会遇到的情形:如何调用现有的外部C代码?很多人首先想到的是S-Function。的确,S-Function提供了一种途径,可以让我们把C函数封装成Simulink模块在Simulink环境下运行。另外还有一种方式,叫做Legacy Code Tool,说白了也是S-Function,只是MATLAB提供了这样的接口便于用...

weixin_34947914的博客 2673

H3C交换机S-MLAG实战:如何用bond4模式实现服务器高可用(附避坑指南)

本文详细介绍了H3C交换机S-MLAG技术与服务器bond4模式的实战配置,帮助实现跨设备链路聚合的服务器高可用方案。通过解析S-MLAG技术优势、bond4模式选择、关键配置步骤及常见问题排查,提供了一套完整的避坑指南和优化建议,适用于企业级网络架构的高可用需求。

weixin_30790841的博客 466

Java获取树形结构数据

在日常的开发或者工作需求中,我们会用到树形结构数据。树形结构是一个比较常用的数据类型,一般多用于查询包含父子类关系的数据。我们常常通过父级id和层级作为标识,是数据更加形象,从而进行树形数据的展示。

m0_71239320的博客 4367

【考研高数-高等数学-基础】第一章 函数、极限、连续

第一章 函数、极限、连续 第二章 导数与微分 第三章 微分中值定理及导数应用 第四章 不定积分 第五章 定积分与反常积分 第六章 定积分的应用 第七章 微分方程 第八章 多元函数微分学 第九章 二重积分 第十章 无穷级数 第十一章 向量代数与空间解析几何及多元微分学在几何上的应用 第十二章 多元积分学及其应用 难题: 极限的递推 微分中值定理的证明题 定积分的不等式和等式的证明 重积分的不等式和等式的证明 线面积分的不等式和等...

刘鑫磊 2034

java递归获取树结构的指定层级、指定层级之上(向上递归(包含父集所有、爷爷集所有...)(父集单独、爷爷集单独...))、指定层级之下所有的(子集、孙子集...)和list集合转Tree树结构

打开安装插件页面 找到插件目录 选择插件包 安装的插件 点击ok按键,会重启idea 在idea顶部菜单Tools ,点击如图所示 点击后,在底部会出现打印sql的按钮 打印sql如下 打印日志插件包下载地址 链接:https://pan.baidu.com/s/1RW0BkBdReGxnvm7qkqd-Og 提取码:ki5c ...

myStyle的博客 4683

gem5-gpu教程01 部署(实测可跑通)

这将GPGPU-Sim更新为与gem5-gpu兼容的最新版本。此版本是已知可用于gem5 gpu的最新版本。

qq_20388971的博客 1404

雷电模拟器+ADB全栈爬虫实战:绕过APP反爬的终极方案与2026最新踩坑指南

现在主流的模拟器爬虫方案有三种,我对比了它们的优缺点,最终选择了雷电模拟器+纯ADB控制方案优势劣势适用场景Appium生态完善,支持多平台重依赖,启动慢,反爬检测率高大型项目,需要跨平台Airtest图像识别强大,上手简单性能差,多开不稳定,反爬检测率高简单的自动化测试纯ADB轻量无依赖,速度快,反爬检测率极低需要自己封装工具工业级爬虫,追求稳定性和反爬逆向接口速度最快,性能最好开发成本高,维护成本高接口简单,反爬弱的APP为什么选雷电模拟器?

专注于Python爬虫开发,分享爬虫技巧、项目实战与反爬经验,使用Scrapy、BeautifulSoup等工具,解决数据抓取难题。 1982

树结构的自定义及基本算法(Java数据结构学习笔记)

数据结构可以归类两大类型:线性结构与非线性结构,本文的内容关于非线性结构:树的基本定义及相关算法。关于树的一些基本概念定义可参考:维基百科 树的ADT模型: 根据树的定义,每个节点的后代均构成一棵树树,称为子树。因此从数据类型来讲,树、子树、树节点是等同地位,可将其看作为一个节点,用通类:Tree表示。如下图所示: 图:Tree ADT模型示意图 可采用“父亲-儿子-兄弟”模型来表示树的

gannyee 7414

新手秒变高手:使用一键脚本快速安装OpenClaw并完成初始化配置

一键脚本是一种自动化工具,可以帮助用户快速完成软件的安装和配置过程,无需手动执行繁琐的命令。OpenClaw提供了官方的一键安装脚本,让新手用户也能轻松部署OpenClaw。

一键难忘的博客 358

【Java数据结构】树

java集合框架:树

2303_77535762的博客 1987

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

基础数据结构c语言版——树篇

c语言实现一些了树,持续更新

2503_90403439的博客 1143

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

数据结构---树(所有类型的树总结)

文章目录数据结构---树1.二叉树2.二叉查找树-BST3.平衡二叉树-AVL4.红黑树5.哈夫曼树6.B树7.B+树8.R树总结 数据结构—树 本章总结数据结构中一些树的特征和结构。转载自这里 1.二叉树 二叉树:最多有两颗子树的树被称为二叉树。 二叉树又分为斜树,满二叉树,完全二叉树: 斜树:所有节点都只有左子树的二叉树叫做左斜树,所有节点都只有右子树的二叉树叫做右斜树。(本质就是链表) 满二叉树:二叉树中所有非叶子结点的度都是2,且叶子结点都在同一层次上。 完全二叉树:如

小皮皮LL的博客 7735

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

数据结构之树(JAVA实现)

1. 什么是树 树(Tree)是一种抽象数据类型,用来模拟实现具有树状类型结构的数据集合。它具有n(n>=0)个有层次的有限结点。当n=0时,称为空树;n>0时,其余结点分为m个互斥的有限集合T1,T2,T3,每个集合分别称为子树。 2. 树的性质 3. ...

weixin_38419670的博客 7866

数据结构—树(Tree)的入门原理以及Java实现案例

详细介绍了树这种数据结构的基本概念,以及通用的树的Java实现方式,为后面各种树的深入学习打好基础。

终生学习践行者 1万+

B 树和 B + 树:数据结构的深度解析

int value;int value;int height;// 获取节点高度return 0;// 获取平衡因子return 0;// 右旋操作(简化示意)return x;// 左旋操作(简化示意)y.left = x;return y;// 插入节点并保持平衡(简化示意,实际需更多处理)} else {// 不允许插入重复值,这里可根据实际需求处理// 左左情况// 右右情况// 左右情况。

m0_57836225的博客 5655

树(Tree)——Java语言

文章目录一,简单介绍二,什么是树(Tree)1.1 树的定义: 一,简单介绍 树(Tree),这种数据结构,自己可能平时没有很注重算法的锻炼,因此对于树,大多存在于知道和会用的程度(不是很熟练),因此自己准备好好重新捋一捋。毕竟树这个数据结构太重要了。 总结的内容是基于《大话数据结构》一书,写的挺不错的,语言简洁,还有点小故事帮助你加深理解。 二,什么是树(Tree)   树是一种一对多的数据...

H1517043456的博客 2602

数据结构——树的概述

引言 对于大量的输入数据,链表的线性访问时间太慢,不宜使用。本篇讨论一种简单的数据结构——树,它大部分操作的运行时间平均为O(logN)O(logN)O(logN)。数据结构中有很多树的结构,其中包括二叉树、二叉搜索树、2-3树、红黑树等等。 基本概念 树(tree)是一些节点的集合。该集合可以是空集,若不是空集,则树由称为根(root)r的节点以及0个或 多个非空的子树组成。 每颗子树的根就做根...

日积月累,天道酬勤 3164

树的高度,深度,层数

申明:本文高度,深度基数为1,但是在《数据结构与算法分析:java语言描述》这本书上,高度,深度的基数为0;两种记法都没有错,都可以用来描述树的性质,只需要标注(>0)或者(>=0)做一个区分和解释即可节点n的高度 : n节点到叶子节点所有路径上包含节点个数的最大值。叶子节点的高度为1,往上节点的高度依次递增。节点n的深度 : 从根节点到节点n唯一的路径的长,根节点深度为1层数:根节点为第一层,往

Mind And Hand 2万+

Java 数据结构与算法-树

逐一扫描数组中的每个数字。对于每个数字 nums[i],应该先从它前面的 k 个数字中找出小于或等于 nums[i] 的最大的数字,如果这个数字与 nums[i] 的差的绝对值不大于 t,那么就找到了一组符合条件的两个数字。否则,再从它前面的 k 个数字中找出大于或等于 nums[i] 的最小的数字,如果这个数字与 nums[i] 的差的绝对值不大于 t,就找到了一组符合条件的两个数字。例如,将从 0 到 t 的数字放入编号为 0 的桶中,从 t+1 到 2t+1 的数字放入编号为 1 的桶中。

qq_64257622的博客 1551

每日学习一个数据结构-树

树是由n(n≥0)个节点组成的有限集合。当n=0时,称为空树;当n>0时,为非空树。在非空树中,有且仅有一个特定的节点被称为根(root),其余节点可分为m(m>0)个互不相交的有限集T1, T2, …, Tm,其中每一个集合本身又是一棵树,并且被称为根的子树(Subtree)。访问时机:三种遍历方式的主要区别在于访问根节点的时机不同。在前序遍历中,根节点在左、右子节点之前被访问;在中序遍历中,根节点在左、右子节点之间被访问;在后序遍历中,根节点在左、右子节点之后被访问。应用场景。

wendao76的专栏 1619

数据结构---树(Tree)

在数据结构中,是一种层次结构的数据结构,由节点(node)组成,其中每个节点通过边(edge)与其他节点连接。树是一种非线性的数据结构,广泛用于表示具有层级关系的数据。常见的树包括二叉树、平衡树、红黑树、B树等。:树中的基本元素,包含数据和指向子节点的指针(或引用)。:连接树中两个节点的连接线。:树的顶层节点,没有父节点。:某个节点的下级节点。:某个节点的上级节点。:没有子节点的节点。:树中某个节点到根节点的路径长度。:树中某个节点到其最深叶节点的最长路径长度。:树的某个节点及其所有后代节点构成的树。

weixin_44929475的博客 3697
上一篇: 操作系统中的LRU置换算法的实现(java实现)
下一篇: 数据结构-树-对比树是否相等(Java语言)
夜石
博客等级 码龄10年 89粉丝 136原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值