6-1 统计二叉树结点个数 (10 分)
 

本题要求实现一个函数,可统计二叉树的结点个数。

函数接口定义:


int NodeCount ( BiTree T);

T是二叉树树根指针,函数NodeCount返回二叉树中结点个数,若树为空,返回0。

裁判测试程序样例:


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

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

6

1 int NodeCount(BiTree t){
2 if(t==NULL)
3 return 0;
4 else
5 return NodeCount(t->lchild) + NodeCount(t->rchild) + 1;
6 }

PTA 统计二叉树结点个数的更多相关文章

  1. PTA 统计二叉树度为2的结点个数

    6-4 统计二叉树度为2的结点个数 (11 分)   本题要求实现一个函数,可统计二叉树中度为2的结点个数. 函数接口定义: int NodeCount ( BiTree T); T是二叉树树根指针, ...

  2. PTA 统计二叉树度为1的结点个数

    6-3 统计二叉树度为1的结点个数 (10 分)   本题要求实现一个函数,可统计二叉树中度为1的结点个数. 函数接口定义: int NodeCount ( BiTree T); T是二叉树树根指针, ...

  3. PTA 统计二叉树叶子结点个数

    6-2 统计二叉树叶子结点个数 (10 分)   本题要求实现一个函数,可统计二叉树的叶子结点个数. 函数接口定义: int LeafCount ( BiTree T); T是二叉树树根指针,函数Le ...

  4. C语言实现二叉树中统计叶子结点的个数&度为1&度为2的结点个数

    算法思想 统计二叉树中叶子结点的个数和度为1.度为2的结点个数,因此可以参照二叉树三种遍历算法(先序.中序.后序)中的任何一种去完成,只需将访问操作具体变为判断是否为叶子结点和度为1.度为2的结点及统 ...

  5. 先序遍历创建二叉树,对二叉树统计叶子节点个数和统计深度(创建二叉树时#代表空树,序列不能有误)c语言

    #include "stdio.h" #include "string.h" #include "malloc.h" #define NUL ...

  6. 中南oj 1213: 二叉树结点公共祖先

    1213: 二叉树结点公共祖先 Time Limit: 1 Sec  Memory Limit: 128 MB Submit: 159  Solved: 87 [Submit][Status][Web ...

  7. 原创:C语言打开、下载、删除网页,统计网页字符个数

    本程序由本人在华夏联盟的ID闪电笨笨原创,首发地址:http://bbs.hx95.com/ 写此程序希望可以可以激发新手学习C语言的积极性! C语言代码实现功能如下:            1.实现 ...

  8. smarty中如何统计数组的个数?

    在做web前端中,很多人会遇到在smarty中如何统计数组的个数,其实很简单 比如数组$array 你只需要用{$array|@count}就可以获取.

  9. 数位dp——统计'1'的个数

    今天去牛客网看了看 包含一 这道题,一开始没看清,以为它要统计 1~n 所有数中数字 '1' 出现的总次数,也就是说,若 n == 11,则 ans = 4:而按照题目的原意 ans 应该为 3.看错 ...

随机推荐

  1. golang1.16新特性速览

    今天是假期最后一天,明天起大家也要陆续复工了.golang1.16也在今天正式发布了. 原定计划是2月1号年前发布的,不过迟到也是golang的老传统了,正好也趁着最后的假期快速预览一下golang1 ...

  2. Vue & Sentry

    Vue & Sentry config.errorHandler https://cn.vuejs.org/v2/api/#errorHandler Vue.config.errorHandl ...

  3. Python Coding Interview

    Python Coding Interview Python Advanced Use enumerate() to iterate over both indices and values Debu ...

  4. Node.js & ES Modules & Jest

    Node.js & ES Modules & Jest CJS & ESM CommonJS https://en.wikipedia.org/wiki/CommonJS ht ...

  5. macOS 录屏 gif

    macOS 录屏 gif LICEcap bug 授权问题? 如何在 Mac 上录制屏幕 https://support.apple.com/zh-cn/HT208721 Command + Shif ...

  6. React & update state with props & Object.assign

    React & update state with props & Object.assign Object.assign({}, oldObj, newObj) https://re ...

  7. SPC算力币异军突起,或将跑赢币圈全场

    比特币在出现反弹以后,并没有向上突破,而是回调,目前已经跌破了35000美金.目前,整个市场都在关注着比特币的动向,毕竟,比特币的走势,关注着资本的流向.不过,也有一部分巨鲸们将目光对准了币圈的其它数 ...

  8. JUC并发编程学习笔记

    JUC并发编程学习笔记 狂神JUC并发编程 总的来说还可以,学到一些新知识,但很多是学过的了,深入的部分不多. 线程与进程 进程:一个程序,程序的集合,比如一个音乐播发器,QQ程序等.一个进程往往包含 ...

  9. 阿里云linux安装nginx,亲测有效

    系统平台:CentOS release 6.6 (Final) 64位. 一.安装编译工具及库文件 yum -y install make zlib zlib-devel gcc-c++ libtoo ...

  10. mbatis中的#{}和${}

    #{}和${}的区别是什么?a.#{}是预编译处理,${}是字符串替换. b.Mybatis 在处理#{}时,会将 sql 中的#{}替换为?号,调用 PreparedStatement 的 set ...