统计二叉树的叶子节点个数
#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);
}
统计二叉树的叶子节点个数相关推荐
- 分别采用递归和非递归方式编写两个函数,求一棵二叉树中叶子节点个数
分别采用递归和非递归方式编写两个函数,求一棵二叉树中叶子节点个数 #include #include #define MAXSIZE 50 typedef char datatype; typedef ...
- c#二叉树 取叶子节点个数_数据结构第四章:树与二叉树(二叉树的概念、性质、特殊二叉树)...
第四章:树与二叉树(二叉树的逻辑结构) 1.二叉树 二叉树是树结构的一种,故二叉树也是逻辑结构. 二叉树:二叉树是n(n≥0)个结点的有限集合. · 1)n=0时,二叉树为空; · 2)n>0时 ...
- c#二叉树 取叶子节点个数_二叉树的最小深度+完全二叉树的节点个数
二叉树的最小深度 题目:给定一个二叉树,找出其最小深度. 最小深度是从根节点到最近叶子节点的最短路径上的节点数量. 说明:叶子节点是指没有子节点的节点. 示例 1: 输入:root = [3,9,20 ...
- c#二叉树 取叶子节点个数_两种类似但是原理不同的算法求二叉树的所有叶子节点和...
技术提高是一个循序渐进的过程,所以我讲的leetcode算法题从最简单的level开始写的,然后到中级难度,最后到hard难度全部完. 目前我选择C语言,Python和Java作为实现语言,因为这三种 ...
- 统计二叉树中叶子结点数数据结构C语言,统计二叉树中叶子结点个数的问题,
#include #include typedef struct Node { int data; struct Node *LChild; struct Node *RChild; }BiTNode ...
- 统计二叉树中叶子节点的数目(数组实现)
按照完全二叉树的形式输入二叉树的各结点数据(字符),其中虚结点用'@'表示.输入以'#'结束. 输出叶子结点的个数及具体值.第一行为为叶子结点的数据值,各数据用空格分隔,第二行为叶子结点的个数. 输入 ...
- 给定一棵二叉树,计算该二叉树的深度、总节点个数和叶子节点个数。
// // binary_tree.cpp // BinaryTreeApp // // Created by ljpc on 2018/5/3. // Copyright © 2018年 ljpc. ...
- java 获取叶子节点个数_数据结构编程: 统计二叉树中叶子结点的个数。
展开全部 叶子节点:没有孩子节点的节点 也就是说,当我们明白了叶子节点的定义62616964757a686964616fe59b9ee7ad9431333363376531后,只需要遍历一遍二叉树,把 ...
- 二叉树(C++):创建,前中后序遍历(递归+非递归),获取叶子节点个数,获取树的高度
文章目录 前言 创建二叉树 先序遍历 中序遍历 后序遍历 获取叶子节点个数 获取树的高度 测试代码 前言 现有如下二叉树: 关于二叉树的相关操作,我们能够发现二叉树从根节点到子节点,以及每个中间节点基 ...
最新文章
- Flash气泡回弹效果
- python-pcl GPU、输入输出模块教程翻译
- C#抽象类与接口的比较
- 汇编语言(二十三)之求一个数的补数
- iOS开发之Masonry框架-使用方法须知
- .gitkeep文件的作用
- Python OS使用
- 【转】详解vue的diff算法
- matlab等高线二维加数字,matlab绘制二维等高线
- FAQ(常见问题解答)
- 面经-毕马威南京-实习-算法-20191216
- maya破解版安装python_Maya mayapy.exe 安装 Cython,编译 pyd
- Linux编程起步 GCC基本用法
- potoshope cs5 序列号
- Sencha Cmd包
- 剑~~~~~~~~~~
- 【FPGA】十一、I2C通信回环
- 群晖DSM7.0设置群晖NAS域名外网访问
- Elliptic Labs进军国际市场, 推出Poco F4 GT游戏智能手机
- JavaScript中classList属性和className的区别
热门文章
- 10.梯度、激活函数和loss
- 【Teradata】windows部署安装Teradata数据库(附虚拟机扩展包)
- 2014-01-14
- java手机论坛_Java论坛系统巡云轻论坛 v1.2
- javascript 在页面显示xxxx年xx月xx日
- android xml图片缩放,Android通过自定义ImageView控件实现图片的缩放和拖动的实现代码...
- 51单片机之温度传感器与液晶显示屏
- DaVinci DM6437 中文教程
- 白帽汇赵武:我们来聊一聊实名制
- 小米红米3(全网通/免解锁)解BL锁教程申请BootLoader解锁教程