#include <iostream>
#include <queue>using namespace std;typedef struct node {char data;struct node *lchild;struct node *rchild;
} TNode;TNode *CreateTree(TNode *&t);int Count(TNode *t); //统计t的叶子节点个数,非递归
int R_Count(TNode *t); //统计t的叶子节点个数,递归int main() {auto t = new TNode ;CreateTree(t);//或者采用 t = CreateTree(t),// 此时的CreateTree(TNode *t),不需要使用引用符号int num = R_Count(t);cout<<num<<endl;return 0;
}TNode *CreateTree(TNode *&t) {char c;cin >> c;if (c == '#')t = nullptr;else {//所以如果中序创建只需要把这个放在中间t = new TNode ;t->data = c;//相当于vision()函数t->lchild = CreateTree(t->lchild);t->rchild = CreateTree(t->rchild);}return t;
}int Count(TNode *t){queue <TNode *> q;int flag = 0; //计算的是度为2节点的个数if (t->lchild!= nullptr&&t->rchild!= nullptr){q.push(t);}TNode * p;while (!q.empty()){p = q.front();q.pop();if (p->lchild!= nullptr&&p->rchild!= nullptr){flag+=1;q.push(p->lchild);q.push(p->rchild);}}return flag+=1;
}int R_Count(TNode *t){if (t== nullptr)return 0;if (t->lchild== nullptr&&t->rchild== nullptr)return 1;return R_Count(t->lchild)+ R_Count(t->rchild);
}

统计二叉树的叶子节点个数相关推荐

  1. 分别采用递归和非递归方式编写两个函数,求一棵二叉树中叶子节点个数

    分别采用递归和非递归方式编写两个函数,求一棵二叉树中叶子节点个数 #include #include #define MAXSIZE 50 typedef char datatype; typedef ...

  2. c#二叉树 取叶子节点个数_数据结构第四章:树与二叉树(二叉树的概念、性质、特殊二叉树)...

    第四章:树与二叉树(二叉树的逻辑结构) 1.二叉树 二叉树是树结构的一种,故二叉树也是逻辑结构. 二叉树:二叉树是n(n≥0)个结点的有限集合. · 1)n=0时,二叉树为空; · 2)n>0时 ...

  3. c#二叉树 取叶子节点个数_二叉树的最小深度+完全二叉树的节点个数

    二叉树的最小深度 题目:给定一个二叉树,找出其最小深度. 最小深度是从根节点到最近叶子节点的最短路径上的节点数量. 说明:叶子节点是指没有子节点的节点. 示例 1: 输入:root = [3,9,20 ...

  4. c#二叉树 取叶子节点个数_两种类似但是原理不同的算法求二叉树的所有叶子节点和...

    技术提高是一个循序渐进的过程,所以我讲的leetcode算法题从最简单的level开始写的,然后到中级难度,最后到hard难度全部完. 目前我选择C语言,Python和Java作为实现语言,因为这三种 ...

  5. 统计二叉树中叶子结点数数据结构C语言,统计二叉树中叶子结点个数的问题,

    #include #include typedef struct Node { int data; struct Node *LChild; struct Node *RChild; }BiTNode ...

  6. 统计二叉树中叶子节点的数目(数组实现)

    按照完全二叉树的形式输入二叉树的各结点数据(字符),其中虚结点用'@'表示.输入以'#'结束. 输出叶子结点的个数及具体值.第一行为为叶子结点的数据值,各数据用空格分隔,第二行为叶子结点的个数. 输入 ...

  7. 给定一棵二叉树,计算该二叉树的深度、总节点个数和叶子节点个数。

    // // binary_tree.cpp // BinaryTreeApp // // Created by ljpc on 2018/5/3. // Copyright © 2018年 ljpc. ...

  8. java 获取叶子节点个数_数据结构编程: 统计二叉树中叶子结点的个数。

    展开全部 叶子节点:没有孩子节点的节点 也就是说,当我们明白了叶子节点的定义62616964757a686964616fe59b9ee7ad9431333363376531后,只需要遍历一遍二叉树,把 ...

  9. 二叉树(C++):创建,前中后序遍历(递归+非递归),获取叶子节点个数,获取树的高度

    文章目录 前言 创建二叉树 先序遍历 中序遍历 后序遍历 获取叶子节点个数 获取树的高度 测试代码 前言 现有如下二叉树: 关于二叉树的相关操作,我们能够发现二叉树从根节点到子节点,以及每个中间节点基 ...

最新文章

  1. Flash气泡回弹效果
  2. python-pcl GPU、输入输出模块教程翻译
  3. C#抽象类与接口的比较
  4. 汇编语言(二十三)之求一个数的补数
  5. iOS开发之Masonry框架-使用方法须知
  6. .gitkeep文件的作用
  7. Python OS使用
  8. 【转】详解vue的diff算法
  9. matlab等高线二维加数字,matlab绘制二维等高线
  10. FAQ(常见问题解答)
  11. 面经-毕马威南京-实习-算法-20191216
  12. maya破解版安装python_Maya mayapy.exe 安装 Cython,编译 pyd
  13. Linux编程起步 GCC基本用法
  14. potoshope cs5 序列号
  15. Sencha Cmd包
  16. 剑~~~~~~~~~~
  17. 【FPGA】十一、I2C通信回环
  18. 群晖DSM7.0设置群晖NAS域名外网访问
  19. Elliptic Labs进军国际市场, 推出Poco F4 GT游戏智能手机
  20. JavaScript中classList属性和className的区别

热门文章

  1. 10.梯度、激活函数和loss
  2. 【Teradata】windows部署安装Teradata数据库(附虚拟机扩展包)
  3. 2014-01-14
  4. java手机论坛_Java论坛系统巡云轻论坛 v1.2
  5. javascript 在页面显示xxxx年xx月xx日
  6. android xml图片缩放,Android通过自定义ImageView控件实现图片的缩放和拖动的实现代码...
  7. 51单片机之温度传感器与液晶显示屏
  8. DaVinci DM6437 中文教程
  9. 白帽汇赵武:我们来聊一聊实名制
  10. 小米红米3(全网通/免解锁)解BL锁教程申请BootLoader解锁教程