当前位置: 首页 > news >正文

6-5 统计二叉树结点个数

分数 10

作者 韦璐

单位 广西科技大学

统计二叉树中所有结点的个数

函数接口定义:

在这里描述函数接口。例如:
int NodeCount( BinTree BT );

其中 BinTree 的结构定义为:

typedef struct TNode *Position;
typedef Position BinTree;
struct TNode{ElementType Data;BinTree Left;BinTree Right;
};

裁判测试程序样例:

在这里给出函数被调用进行测试的例子。例如:
#include<stdio.h>
#include<stdlib.h>
#define MAXSIZE 100typedef struct TNode * BinTree;   /* 二叉树类型 */
typedef char ElementType;
struct TNode{    /* 树结点定义 */ ElementType Data;  /* 结点数据 */BinTree Left;   /* 指向左子树 */ BinTree Right;   /* 指向右子树 */ 
}; int PrintLeaves( BinTree BT );//按先序次序输入二叉树中结点的值(一个字符),@表示空树,构造二叉链表表示二叉树T 
BinTree CreatBinTree()
{ElementType ch;BinTree T;scanf("%c",&ch);  /*按先序次序输入树的结点,空树输入@*/if(ch == '@')T = NULL;else {T = (BinTree)malloc(sizeof(struct TNode));T->Data = ch;T->Left = CreatBinTree();T->Right = CreatBinTree();}
return T;
} 
/* 请在这里填写答案 */int main()
{BinTree BT;int  count;BT = CreatBinTree();if(BT == NULL){printf("\n空树!\n"); }else{count = NodeCount(BT);printf("该二叉树中所有结点个数为:%d",count); } return 0;
}

QQ截图20201126013943.png

输入样例:

在这里给出一组输入。例如:

ABD@@EG@@@C@F@@

输出样例:

在这里给出相应的输出。例如:

该二叉树中所有结点个数为:7

代码长度限制

16 KB

时间限制

400 ms

内存限制

64 MB

C程序如下:

// 计算二叉树节点总数的递归函数
int NodeCount(BinTree BT) {// 如果当前节点为空,则节点数为0if (BT == NULL) {return 0;}int left, right;left = right = 0;// 递归计算左子树的节点数left += NodeCount(BT->Left);// 递归计算右子树的节点数right += NodeCount(BT->Right);// 返回左子树节点数、右子树节点数之和再加1(当前节点)return left + right + 1;
}

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 【第八章】多线程——Thread类
  • 微信小程序如何跳转微信公众号
  • 苹果手机备忘录共享到微信,为何显示不支持的类型
  • 冷冻式压缩空气干燥机常见几种系统原理图
  • Vue从入门到实战Day07
  • HTML蓝色爱心
  • C++第二十弹---深入理解STL中vector的使用
  • MySQL--联合索引应用细节应用规范
  • 浅谈网络通信(1)
  • 【华为】将eNSP导入CRT,并解决不能敲Tab问题
  • 爬山算法介绍
  • JS根据所选ID数组在源数据中取出对象
  • 【Linux学习】深入探索进程等待与进程退出码和退出信号
  • 非关系型数据库NOSQL
  • echarts- 热力图, k线图,雷达图
  • 时间复杂度分析经典问题——最大子序列和
  • 实现windows 窗体的自己画,网上摘抄的,学习了
  • 【407天】跃迁之路——程序员高效学习方法论探索系列(实验阶段164-2018.03.19)...
  • 【Leetcode】104. 二叉树的最大深度
  • 【知识碎片】第三方登录弹窗效果
  • eclipse的离线汉化
  • Fastjson的基本使用方法大全
  • iOS仿今日头条、壁纸应用、筛选分类、三方微博、颜色填充等源码
  • ng6--错误信息小结(持续更新)
  • 从setTimeout-setInterval看JS线程
  • 服务器从安装到部署全过程(二)
  • 力扣(LeetCode)21
  • 三分钟教你同步 Visual Studio Code 设置
  • 少走弯路,给Java 1~5 年程序员的建议
  • 微信小程序开发问题汇总
  • 问:在指定的JSON数据中(最外层是数组)根据指定条件拿到匹配到的结果
  • 智能网联汽车信息安全
  • C# - 为值类型重定义相等性
  • Prometheus VS InfluxDB
  • 数据库巡检项
  • ​软考-高级-系统架构设计师教程(清华第2版)【第9章 软件可靠性基础知识(P320~344)-思维导图】​
  • (delphi11最新学习资料) Object Pascal 学习笔记---第13章第6节 (嵌套的Finally代码块)
  • (MIT博士)林达华老师-概率模型与计算机视觉”
  • (读书笔记)Javascript高级程序设计---ECMAScript基础
  • (二十一)devops持续集成开发——使用jenkins的Docker Pipeline插件完成docker项目的pipeline流水线发布
  • (附源码)spring boot儿童教育管理系统 毕业设计 281442
  • (附源码)spring boot校园拼车微信小程序 毕业设计 091617
  • (附源码)ssm跨平台教学系统 毕业设计 280843
  • (附源码)计算机毕业设计SSM基于java的云顶博客系统
  • ./mysql.server: 没有那个文件或目录_Linux下安装MySQL出现“ls: /var/lib/mysql/*.pid: 没有那个文件或目录”...
  • .net 8 发布了,试下微软最近强推的MAUI
  • .Net CoreRabbitMQ消息存储可靠机制
  • .NET MVC第三章、三种传值方式
  • .net 获取url的方法
  • .net安装_还在用第三方安装.NET?Win10自带.NET3.5安装
  • 。。。。。
  • @Value读取properties中文乱码解决方案
  • @取消转义
  • @四年级家长,这条香港优才计划+华侨生联考捷径,一定要看!
  • [ 云计算 | AWS 实践 ] 基于 Amazon S3 协议搭建个人云存储服务