6-3 求二叉树的深度

作者 DS课程组

单位 临沂大学

本题要求实现一个函数,可返回二叉树的深度。

函数接口定义:

 

int Depth(BiTree T);

T是二叉树树根指针,函数Depth返回二叉树的深度,若树为空,返回0。

裁判测试程序样例:


#include <stdio.h>
#include <stdlib.h>typedef char ElemType;
typedef struct BiTNode
{ElemType data;struct BiTNode *lchild, *rchild;
}BiTNode, *BiTree;BiTree Create();/* 细节在此不表 */int Depth(BiTree T);int main()
{BiTree T = Create();printf("%d\n", Depth(T));return 0;
}
/* 你的代码将被嵌在这里 */

输入样例:

输入为由字母和'#'组成的字符串,代表二叉树的扩展先序序列。例如对于如下二叉树,输入数据:

AB#DF##G##C##

输出样例(对于图中给出的树):

二叉树.png

4

代码长度限制

16 KB

时间限制

400 ms

内存限制

64 MB

C程序如下:

int Depth(BiTree T) {// 如果当前节点为空,则树的深度为0if (T == NULL) {return 0;}// 递归计算左子树的深度int left = Depth(T->lchild);// 递归计算右子树的深度int right = Depth(T->rchild);// 比较左右子树的深度,返回较大值加1作为当前树的深度if (left > right) {return ++left; // 左子树深度较大,返回左子树深度加1} else {return ++right; // 右子树深度较大或相等,返回右子树深度加1}
}

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

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

相关文章

电商API接口:供应商价格与主流电商平台价格做比价

品牌在进行采购工作时&#xff0c;将供应商提供的价格与主流电商平台上的公开价格进行比价是一种非常常见的做法&#xff0c;这样做的目的主要是为了保证自身供应商提供的价格具有竞争力和合理性&#xff0c;从而更好地优化采购工作。 以下是过程中的具体步骤及一些注意事项&a…

基于springboot实现周边游平台个人管理系统项目【项目源码+论文说明】

基于springboot实现周边游平台个人管理系统演示 摘要 在如今社会上&#xff0c;关于信息上面的处理&#xff0c;没有任何一个企业或者个人会忽视&#xff0c;如何让信息急速传递&#xff0c;并且归档储存查询&#xff0c;采用之前的纸张记录模式已经不符合当前使用要求了。所以…

2024年上半年信息系统项目管理师下午真题及答案(第一批)

试题一 某项目包含ABCDEFGH共8个活动&#xff0c;各活动的历时、活动逻辑关系如下表所示&#xff1a; 单击下面头像图片领取更多软考独家资料

git忽略文件不生效解决方案

如下面命令报错 请查看&#xff08;git学习笔记&#xff09; 问题解释&#xff1a; Git忽略文件不生效可能是因为.gitignore文件中的规则不正确&#xff0c;或者是已经被跟踪的文件导致规则没有效果。 解决方法&#xff1a; 检查.gitignore文件中的规则是否正确。确保没有语…

分布式一致性必备:一文读懂Raft算法

本文作者:小米,一个热爱技术分享的29岁程序员。如果你喜欢我的文章,欢迎关注我的微信公众号“软件求生”,获取更多技术干货! 大家好!我是小米,一个热爱分享技术的29岁程序员哥哥。今天我们来聊聊分布式系统中的一个重要算法——Raft。这个算法专门用于管理分布式系统中…

DCL(数据控制)

1. 用户管理 1.1 查询用户 select * from mysql.user; 查询结果&#xff1a; 其中 Host代表当前用户访问的主机, 如果为localhost, 仅代表只能够在当前本机访问&#xff0c;是不可以远程访问的。 User代表的是访问该数据库的用户名。在MySQL中需要通过Host和User来唯一标识…

蓝牙Mesh模块组网时无线回程影响速率吗?

随着科技的发展&#xff0c;智能家居、智能办公等场景越来越广泛地应用于我们的生活。其中&#xff0c;蓝牙Mesh组网技术作为一种新型的无线通信技术&#xff0c;受到了越来越多用户的关注。那么&#xff0c;蓝牙Mesh模块在组网时无线回程过程中是否会影响速率呢&#xff1f;本…

Python爬虫实战:利用代理IP获取电商数据

文章目录 1.电商数据介绍2.爬取目标3.代理IP推荐4.准备工作4.1 模块安装4.2 代理IP获取 5.爬虫代码实战5.1分析网页5.1.1 获取cookie5.1.2 关键词分析5.1.3 翻页分析5.1.4 数据获取分析 5.2 发送请求5.3 提取数据5.4 保存数据5.5 完整源码5.6 数据分析六、总结 1.电商数据介绍 …

解决问题的多样手段:不止律师

在我们日常生活和工作中&#xff0c;总是会遇到各种各样的问题。有时我们会不由自主地想到找律师打官司&#xff0c;认为这是解决问题的唯一途径。然而&#xff0c;解决问题其实有很多手段&#xff0c;律师和法庭只是其中的一种。事实上&#xff0c;只要能够发现问题并及时解决…

基于LLM的优化器

基于LLM的优化器 代码输出 需求描述: 我准备用二台8卡的GPU服务器训练一个LLM模型,因为不同的超参会导致不同的性能.我准备了一个脚本,输入一些参数,会运行训练脚本,之后输出tokens/sec,这个值越大越好。 你现在是一个优化器,我告诉你有哪些输入参数,以及它们值的范围,你输出参…

php祛除mqtt 返回数据中包含的特殊字符

function cleanseMessage($message) {// 定义特殊字符的正则表达式$pattern /[[:^print:]]/;// 使用正则表达式替换特殊字符为空字符串$cleanedMessage preg_replace($pattern, , $message);return $cleanedMessage; }// 假设接收到的MQTT消息是&#xff1a; $rawMessage &q…

Spring Boot中@Value加载配置的替代者:@ConfigurationProperties

Value注解Spring Boot开发者都已经熟悉了&#xff0c;通过该注解&#xff0c;我们可以快速的把配置信息加载到Spring的Bean中。 例如&#xff1a;在application.yml中添加了一个配置如下&#xff1a; 我想在service中获取name&#xff0c;通过value注解方式实现&#xff0c;代…

人力资源管理信息化系统如何支持企业开展管理诊断?

华恒智信人力资源顾问有限公司致力于帮助企业开展人力资源管理方面的各项提升改进工作&#xff0c;在长期的咨询工作中&#xff0c;最常听到企业提到的问题莫过于管理诊断方面的问题&#xff0c;事实上&#xff0c;很多企业在日常工作中&#xff0c;都意识到企业内部存在管理方…

比例溢流阀的放大器找BEUEC

液压比例放大器的使用范围广泛&#xff0c;包括工业生产线、船舶液压系统等多个领域。BEUEC比例放大器是一种重要的液压系统组件&#xff0c;其作用是将微弱的液压信号放大&#xff0c;以实现对液压系统的精确控制。这种设备在多个行业中都有广泛的应用&#xff0c;特别是在需要…

C++ List完全指南:使用方法与自定义实现

文章目录 list的使用几种构造函数 list的实现1.节点类的定义1.1节点类的构造函数 2.正向迭代器实现2.1operator*重载2.2operator->重载2.3operator重载2.4operator--2.5operator和operator&#xff01; 3.反向迭代器实现3.1operator*重载3.2operator->重载3.3operator重载…

ES2020新特性概览

以下是ES2020版本中的一些新特性&#xff1a; Promise.allSettled&#xff1a;Promise.allSettled()方法返回一个在所有给定的promise已被决议或被拒绝后决议的promise&#xff0c;返回的 promise 根据每个 Promise的结果状态决定其决议方式&#xff08;注意&#xff1a;与Prom…

进口特氟龙隔膜泵的选型

进口特氟龙隔膜泵的选型需要考虑多个因素&#xff0c;以确保所选泵能够满足特定的应用需求。以下是一个清晰的选型指南&#xff0c;基于参考文章中的相关信息&#xff1a; 一、选型参数 公称通径&#xff1a; 根据系统需求选择合适的通径&#xff0c;通常范围为10-100mm。流量…

QT嵌入exe到widget窗口

QString exePath QDir::currentPath() "/test.exe"; QProcess *process new QProcess(this); process->start(exePath); if (!process->waitForStarted()) {QMessageBox::critical(this, "Error", "无法启exe程序.");return; } //QThr…

解决Vue3+TS+vite,VSCode 高亮语法错误

一般像这种提示&#xff0c;有可能就是TypeScript语法的识别问题&#xff0c; 一般我们重装一下Vue - Official插件 或者将tcconfig.json中的moduleResolution改为node模式&#xff0c; 基本都是TypeScript无法识别vue文件中的TypeScript语句导致的

照片处理软件哪个好?爆款图片编辑工具分享

照片处理软件哪个好&#xff1f;在数字时代&#xff0c;照片处理软件已经成为我们日常生活和工作中不可或缺的工具。无论是为了美化照片、修复旧照&#xff0c;还是进行专业的图像处理&#xff0c;都有各种软件可以满足我们的需求。以下是一些值得一试的照片处理软件&#xff0…