二叉树的深度,求第k层的节点个数,二叉树的销毁,二叉树寻找值为x的节点

文章目录

    • 一、二叉树的深度
    • 二、二叉树的k层节点个数
    • 三、二叉树的销毁
    • 四、二叉树查找值为x的节点

一、二叉树的深度

int BTreeHeight(BTNode* root)
{if (root == NULL)return 0;int rightHeight = BTreeHeight(root->right);int leftHeight = BTreeHeight(root->left);return rightHeight > leftHeight ? rightHeight + 1 : leftHeight + 1;
}
int main()
{BTNode* node1 = BuySTNode(1);BTNode* node2 = BuySTNode(2);BTNode* node3 = BuySTNode(3);BTNode* node4 = BuySTNode(4);BTNode* node5 = BuySTNode(5);BTNode* node6 = BuySTNode(6);BTNode* node7 = BuySTNode(7);node1->left = node2;node1->right = node4;node2->right = node5;node2->left = node3;node4->left = node6;node4->right = node7;printf("%d", BTreeHeight(node1));return 0;
}

在这里插入图片描述

二、二叉树的k层节点个数

int	BTreeLevelKSize(BTNode* root,int k)
{if (root==NULL)return 0;if (k == 1)return 1;return BTreeLevelKSize(root->left,k-1)+ BTreeLevelKSize(root->right, k - 1);
}

在这里插入图片描述

三、二叉树的销毁

熟悉了前面的递归,销毁递归基本上是小菜一碟,从最下面的节点开始销毁

void BTreeDistroy(BTNode* root)
{if (root == NULL)return;BTreeDistroy(root->left);BTreeDistroy(root->right);}

四、二叉树查找值为x的节点

BTNode* BTreeFind(BTNode* root,int x)
{if (root == NULL)return NULL;if (root->data == x)return root;BTNode*  ret1 = BTreeFind(root->left,x);if (ret1->data == x)return ret1;BTNode* ret2 = BTreeFind(root->right,x);if (ret2->data == x)return ret2;return NULL;
}

在这里插入图片描述

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

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

相关文章

生态系统碳循环模型CENTURY建模方法应用

CENTURY模型,主要基于过程的陆地生态系统生物地球化学循环模型。主要用于模拟不同土壤-植被系统间C、N、P和S的长期动态。根据土壤有机质的分解速率,CENTURY模型将土壤总有机碳(TOC)分成了三个碳库,即活性、慢性和惰性…

STM32(13)串口

串口的数据帧 1.空闲 2.起始位 3.数据位 4.校验位(可有可无) 为了验证数据传输是否出错而设立的比特位 1和4传输方式比较常见 校验规则: 根据1的个数,校验位会自己补0或1 5.停止位 例子: 同步通信 异步通信 波特率 …

IIS发布PHP网站字体404解决办法

最近在使用 IIS 发布 PHP 网站时,我遇到了一个前端问题,即字体库文件 404 错误。这个问题的根本原因是 IIS 未能正确识别字体文件类型,导致浏览器在加载页面时无法正确获取所需字体资源,进而触发了404错误。这样的问题会导致网站页…

基于嵌入式的车载导航定位系统设计

一、前言 1.1 项目介绍 【1】项目背景 随着汽车工业的飞速发展和智能化技术的不断突破,车载导航系统作为现代汽车不可或缺的一部分,在人们的日常生活中扮演着越来越重要的角色。它不仅能够提供精确的路线导航,还能提供丰富的地理信息和娱乐…

RAC集群日常维护

RAC的启停 cd /u01/app/19.3.0/grid/bin 停止 ./crsctl stop crs 检查 ./crsctl check crs 启动,可以两个节点同时启动 ./crsctl start crs 检查 ./crsctl check crs ./crsctl status res -t oracle的RAC日常维命令 集群状态检查命令 cractl status res …

nginx主动检测后端健康模块

一、前言 nginx也有自带的后端检测模块ngx_http_upstream_module,该模块可以做到基本的健康检查,因为该健康检查是被动的,当nginx有请求后,才会对后端服务进行健康检测,当检测到有故障时会将这个请求转发到正常的后端服…

基于springboot的助农管理系统的设计与实现

** 🍅点赞收藏关注 → 私信领取本源代码、数据库🍅 本人在Java毕业设计领域有多年的经验,陆续会更新更多优质的Java实战项目希望你能有所收获,少走一些弯路。🍅关注我不迷路🍅** 一 、设计说明 1.1研究背…

yolov8-更换卷积模块-ContextGuidedBlock_Down

源码解读 class ContextGuidedBlock_Down(nn.Module):"""the size of feature map divided 2, (H,W,C)---->(H/2, W/2, 2C)"""def __init__(self, nIn, dilation_rate2, reduction16):"""args:nIn: the channel of input fea…

保护模式笔记九 中断门和IDT(中断描述符表)

保护模式笔记九 中断门和IDT(中断描述符表) https://www.52pojie.cn/thread-1455684-1-1.html (出处: 吾爱破解论坛) 前言 所有保护模式索引链接:保护模式笔记一 保护模式介绍 前面学习了调用门之后继续学习中断门 中断门 中断门的作用 先前学习的调用门在实际…

文章解读与仿真程序复现思路——电网技术EI\CSCD\北大核心《基于条件风险价值的虚拟电厂参与能量及备用市场的双层随机优化》

本专栏栏目提供文章与程序复现思路,具体已有的论文与论文源程序可翻阅本博主免费的专栏栏目《论文与完整程序》 论文与完整源程序_电网论文源程序的博客-CSDN博客https://blog.csdn.net/liang674027206/category_12531414.html 这篇文章的标题涉及到以下几个关键点…

SQL入门教程参考

参考 SQL视频教程 LintCode 炼码 - ChatGPT!更高效的学习体验! SQL基础教程 SQL 教程 SQL 教程2 SQL教程 - 廖雪峰的官方网站 史上最全SQL基础知识总结(理论举例)-CSDN博客 数据库表基础操作 首先数据库表必掌握的基础操作,建表、删表、…

PyTorch-神经网络

神经网络,这也是深度学习的基石,所谓的深度学习,也可以理解为很深层的神经网络。说起这里,有一个小段子,神经网络曾经被打入了冷宫,因为SVM派的崛起,SVM不了解的同学可以去google一下&#xff0…