二叉树采用二叉链表存储:编写计算整个二叉树高度的算法

news2024/11/28 17:55:38

二叉树采用二叉链表存储:编写计算整个二叉树高度的算法
(二叉树的高度也叫二叉树的深度)

代码思路
首先你要明白什么是树的高度,简言之就是树有多少层,如下图:
下面这棵树的高度就是4
在这里插入图片描述
首先我们观察根节点,根节点左子树高度是2,右子树高度是3
那么我们取左右子树高度较大值3,再加上根节点自己一个,那根节点高度就是3+1=4

那么问题来了,我们怎么知道根节点左右子树高度呢?
那就遍历一下根节点左右子树呗,问题转换成求结点左右子树高度,
再然后问题就转换成,求根节点左右子树的子树高度了。。。

这样是不是就是我们熟悉的递归啊。

代码实现如下:

int BiTreeDepth(BiTree T) {
	if (T != NULL) {//递归退出条件
		return 0;
	}
	int i = 0;//标记左子树高度
	int j = 0;//标记右子树高度
	if (T->lchild) {//如果还有左子树,往下递归
		i = BiTreeDepth(T->lchild);
	}
	else {
		i = 0;
	}
	if (T->rchild) {//如果还有右子树,往下递归
		j = BiTreeDepth(T->rchild);
	}
	else {
		j = 0;
	}
	return i >= j ? i+1 : j+1;//向上一层结点返回该子树的深度,注意这里要+1因为还有一个根节点高度
}

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

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

相关文章

软件测试:压力测试详解

压力测试 压力测试是一种软件测试,用于验证软件应用程序的稳定性和可靠性。压力测试的目标是在极其沉重的负载条件下测量软件的健壮性和错误处理能力,并确保软件在危急情况下不会崩溃。它甚至可以测试超出正常工作点的测试,并评估软件在极端…

使用免费 FlaskAPI 部署 YOLOv8

目标检测和实例分割是计算机视觉中关键的任务,使计算机能够在图像和视频中识别和定位物体。YOLOv8是一种先进的、实时的目标检测系统,因其速度和准确性而备受欢迎。 Flask是一个轻量级的Python Web框架,简化了Web应用程序的开发。通过结合Fla…

手把手教你:UE 4.27插件项目的自动化打包(Windows、Android、iOS统统搞定)

Windows平台 下载/安装Epic Games launcher;然后安装 Unreal Engine v4.27.2 注意:launcher和具体版本的engine务必安装在相同的父目录下!如下: 2. 安装Visual Studio 2019或2022。安装完成后执行菜单:帮助 | 检查更…

3D医学三维技术影像PACS系统源码

一、系统概述 3D医学影像PACS系统,它集影像存储服务器、影像诊断工作站及RIS报告系统于一身,主要有图像处理模块、影像数据管理模块、RIS报告模块、光盘存档模块、DICOM通讯模块、胶片打印输出等模块组成, 具有完善的影像数据库管理功能,强大…

分享77个工作总结PPT,总有一款适合您

分享77个工作总结PPT,总有一款适合您 PPT下载链接:https://pan.baidu.com/s/1qdoA_Ylbxkmp2Qkh9VDw8A?pwd8888 提取码:8888 Python采集代码下载链接:采集代码.zip - 蓝奏云 水彩插画风幼儿说课PPT模板 舞龙舞狮文化传承通…

FPGA高端项目:图像采集+GTP+UDP架构,高速接口以太网视频传输,提供2套工程源码加QT上位机源码和技术支持

目录 1、前言免责声明本项目特点 2、相关方案推荐我这里已有的 GT 高速接口解决方案我这里已有的以太网方案 3、设计思路框架设计框图视频源选择OV5640摄像头配置及采集动态彩条视频数据组包GTP 全网最细解读GTP 基本结构GTP 发送和接收处理流程GTP 的参考时钟GTP 发送接口GTP …

官媒代运营:质疑代运营,理解代运营,成为代运营,超越代运营

官媒代运营 随着互联网的发展,品牌传播变得越来越重要。而代运营作为一种专业的、高效的品牌传播方式,逐渐受到企业的青睐。不过,很多人对代运营持质疑态度,认为它只是简单的外包服务。但实际上,代运营远不止于此&…

CV计算机视觉每日开源代码Paper with code速览-2023.11.1

精华置顶 墙裂推荐!小白如何1个月系统学习CV核心知识:链接 点击CV计算机视觉,关注更多CV干货 论文已打包,点击进入—>下载界面 点击加入—>CV计算机视觉交流群 1.【基础网络架构】Battle of the Backbones: A Large-Scal…

JVM调优工具详解及调优实战(1)

文章目录 1. 前提准备2. Jmap3. Jstack4. Jinfo5. Jstat(重点)6. 案例分析 1. 前提准备 任意启动一个web项目,这里我已经启动好了 2. Jmap map命令用于生成堆转储快照,有时候也成为heapdump或者dump文件。Jmap不仅仅可以获取d…

易语言软件定制开发爬虫模拟协议填写自动化办公软件开发多人团队

在当今快速发展的信息化时代,企业对于高效、自动化的软件需求日益增长。而易语言软件定制开发爬虫模拟协议填写自动化办公软件开发多人团队,正是为了满足这一需求而诞生的。 一、团队背景 技术顾问、维:Daxiami6789 易语言软件定制开发爬虫模…

京东数据平台:2023年Q3季度黄金市场数据分析

继9月国内黄金市场持续上涨后,进入10月中下旬后,黄金行情再度反转,多家品牌金饰价格再次突破600元/克,达到611元/克。 今年以来,黄金行情不断走俏,销售市场也有明显增长。根据鲸参谋平台的数据显示&#xf…

geoserver在wms服务查询时中文乱码问题

一、geoserver上的问题 在服务查询时遇到了编码问题,首先就是确认数据存储位置的数据是否采用了GBK编码,排除geoserver的问题。 二、数据上的问题 一般高版本的arcgis或者arcgispro导出来shp的dbf文件在excel里打开中文都是乱码,而这个乱…

瑞明达:聚“追梦”之力,共圆“经济梦”

矢志不渝,笃行不怠,争当“一心一意同国行”的无悔“追梦人”。过往几年,国际形势风高浪急,国内环境复杂多变,在后疫情时代、经济恢复压力等多种超预期的因素冲击下,瑞明达团队全面贯彻落实国家发展政策&…

Graph 部分复习(考试向)

Graph Review OverallPage RankSpam FarmBrandes’ AlgorithmSpectral ClusteringInfuence Maxization- Independent cascade model Overall Page Rank 对于某个互联网网页A来说,该网页PageRank的计算基于以下两个基本假设: 边(Link&#xf…

【信息安全原理】——IP及路由安全(学习笔记)

目录 🕒 1. IPv4协议及其安全性分析🕒 2. IPsec(IP Security)🕘 2.1 IPsec安全策略🕤 2.1.1 安全关联(Security Association, SA)🕤 2.1.2 安全策略(Security…

【数据结构】单双链表超详解!(图解+源码)

🎥 屿小夏 : 个人主页 🔥个人专栏 : 数据结构解析 🌄 莫道桑榆晚,为霞尚满天! 文章目录 📑前言🌤️链表概念🌤️链表的分类☁️单向或双向链表☁️带头或不带…

如何规范嵌入式软件开发

键盘的诱惑一直是所有太多嵌入式开发的失败。编写代码很有趣。很好 我们觉得我们正在该项目上取得进展。我们的老板通常不擅长构建固件的细微差别,他们赞成批准,微笑着,因为我们显然正在做有价值的事情。 作为从事基于汇编语言的系统的年轻开…

克隆音-自用教程

硬件准备: 8g以上显存的显卡(3060Ti以上)、16g以上内存、cpu是x86_64架构且支持avx2指令集、电源500w以上、1T的磁盘 free -g看内存 cat /proc/cpuinfo | grep avx2查指令集 资源准备 磁盘扩容 我扩大根目录 sudo lvextend -l 100%FREE /dev/mapper/ubuntu--vg-ubuntu--lv …

坏死性凋亡+预后模型+实验,简单思路也能拿下7+。可升级

今天给同学们分享一篇坏死性凋亡预后模型实验的生信文章“Analysis of necroptosis-related prognostic genes and immune infiltration in idiopathic pulmonary fibrosis”,这篇文章于2023年3月27日发表在Front Immunol期刊上,影响因子为7.3。 IPF是一…

Vulkan Buffer 的构造的坑

Vulkan Buffer 的构造的坑 1. DeviceSize 和 memcpy 的大小是数组的数据总量的大小&#xff0c;而不是数组的元素个数 假设你读取模型之后的顶点和索引数组是这样的 std::vector<float> vertices; std::vector<uint16_t> indices;那么你传给 DeviceSize 和 m…