数据结构计算二叉树的深度和节点个数
创始人
2024-01-31 17:10:02
0

2022.11.19

计算二叉树的深度和节点个数

  • 任务描述
  • 相关知识
  • 编程要求
  • 测试说明
  • C/C++代码


任务描述

本关任务:给定一棵二叉树,计算该二叉树的深度、总节点个数和叶子节点个数。

相关知识

为了完成本关任务,你需要掌握:1.二叉树深度概念,2.二叉树节点,3.二叉树叶子节点概念。
在这里插入图片描述
二叉树深度概念
二叉树的深度指的是二叉树中最大的结点层数。例如:图1所示的二叉树最大的节点层数为3,所以该二叉树深度为3。

二叉树节点
二叉树的节点包含一个数据元素及两个指向子树的分支,例如:图1所示的二叉树的总节点个数为6。

二叉树叶子节点概念
叶子节点是度为0的节点,二叉树节点的度为子树的个数。例如:图1所示的二叉树叶子节点为C,D和F,个数为3。

编程要求

本关的编程任务是补全右侧代码片段GetTreeDepth、GetNodeNumber和GetLeafNodeNumber中Begin至End中间的代码,具体要求如下:

  1. 在GetTreeDepth中计算该二叉树的深度,返回深度值。
  2. 在GetNodeNumber中计算该二叉树的总的节点个数,返回节点个数。
  3. 在GetLeafNodeNumber中计算该二叉树的叶子节点个数,返回叶子节点个数。

测试说明

平台将自动编译补全后的代码,并生成若干组测试数据,接着根据程序的输出判断程序是否正确。

以下是平台的测试样例:

测试输入:ABC##D##EF###
预期输出
3
6
3

测试输入:ABCD###E#F##G##
预期输出
4
7
3

开始你的任务吧,祝你成功!

C/C++代码

//
//  binary_tree.cpp#include "binary_tree.h"//创建新结点的工具函数
BTNode* getNewNode(char e)
{BTNode* p = (BTNode*)malloc(sizeof(BTNode));p->data = e;p->lchild = p->rchild = NULL;return p;
}// 计算该二叉树的深度
// 参数:二叉树根节点root
// 返回:二叉树的深度
int GetTreeDepth(BTNode* root)
{// 请在这里补充代码,完成本关任务/********** Begin *********/if(!root)return 0;if(!root->lchild && !root->rchild)return 1;int deep=0;int deepl = GetTreeDepth(root->lchild);if(deeprchild);if(deep// 请在这里补充代码,完成本关任务/********** Begin *********/if (root == NULL)return 0;elsereturn GetNodeNumber(root->lchild) + GetNodeNumber(root->rchild) +1;/********** End **********/
}// 计算该二叉树的叶子节点个数
// 参数:二叉树根节点root
// 返回:二叉树的叶子节点个数
int GetLeafNodeNumber(BTNode* root)
{// 请在这里补充代码,完成本关任务/********** Begin *********/if(!root)return 0;if(!root->lchild && !root->rchild) return 1;int leaf = GetLeafNodeNumber(root->lchild);leaf += GetLeafNodeNumber(root->rchild);return leaf;/********** End **********/
}

相关内容

热门资讯

【理响中国】更加清醒坚定地推进...   腐败是党和国家事业发展进程中的拦路虎、绊脚石,反腐败是一场输不起也决不能输的重大斗争。在二十届中...
“春风行动”让家门直通厂门、五...   央视网消息:眼下正是宁夏的冬闲时节,而春节前后则是沿海地区用工缺口的高峰期。16日,宁夏“202...
“十五五”开好局起好步|从“会...   央视网消息:从写入“十五五”规划建议到走进现实的智能载体,“具身智能”的发展速度超出想象,而人形...
焦点访谈|海南自贸港全岛封关“...   央视网消息(焦点访谈):2025年12月18日,海南自由贸易港正式启动全岛封关,标志着3万多平方...
晶采观察丨八部门发文!银发福利...   赶紧转给爸妈,2026年养老消费有了更多新选择。近日,民政部等八部门联合印发《关于培育养老服务经...
视频丨为夺格陵兰岛 美再挥关税...   17日,丹麦本土和格陵兰岛多地分别举行游行示威,抗议美国近期持续发表觊觎格陵兰岛的言论。然而就在...
哥伦比亚发生武装冲突 已致20...   当地时间16日,哥伦比亚中南部的瓜维亚雷省埃尔雷东托市农村地区发生一起严重武装冲突,造成至少20...
AI生成图片竟成人像摄影指南 ...   AI写诗、作画已经不新鲜了,但如果您买了一本教人摄影的专业书籍,回家却发现书里的模特长着六根手指...
欧盟-南共市自贸协定正式签署 ...   当地时间1月17日,欧盟-南方共同市场(南共市)自由贸易协定在巴拉圭首都亚松森正式签署。阿根廷总...
两部门安排部署重点省份做好低温...   针对1月17日至21日明显雨雪过程,1月17日,国家防灾减灾救灾委员会办公室、应急管理部组织中国...