计算二叉树中叶子节点的数目
来源:互联网 发布:微星主板监控软件 编辑:程序博客网 时间:2024/04/28 12:27
描述
先序建立一棵二叉树,采用二叉链表结构存储,并计算该二叉树中叶子节点的数目。
输入
输入一串先序遍历字符串,根据此字符串建立一棵二叉树(以指针方式存储)。
如输入某二叉树的先序序列为ABC##DE#G##F###(其中#表示空格字符,空格字符代表空树)。
如输入某二叉树的先序序列为ABC##DE#G##F###(其中#表示空格字符,空格字符代表空树)。
输出
输出叶子节点的个数(输出结果后换行)。
输入样例
ABC##DE#G##F###
输出样例
3
#include <iostream>#include <stdlib.h>#include <cstdio>#define DataType charusing namespace std;typedef struct BinTreeNode{ char data; struct BinTreeNode *lchild; struct BinTreeNode *rchild;}BinTree, *PBinTree;PBinTree CreateBinTree(){ PBinTree root = (PBinTree)malloc(sizeof(BinTree)); char c = getchar(); if(c == '#') return NULL; else { root->data = c; root->lchild = CreateBinTree(); root->rchild = CreateBinTree(); } return root;}void PostOrderTraverse(PBinTree root){ if(root) { printf("%c", root->data); PostOrderTraverse(root->lchild); PostOrderTraverse(root->rchild); }}int LeafCount(PBinTree root){ if(!root) return 0; else { if((!root->lchild)&&(!root->lchild)) return 1; else return LeafCount(root->lchild)+LeafCount(root->rchild); }}int main(){ PBinTree T; T = CreateBinTree(); //PostOrderTraverse(T); cout << LeafCount(T) << endl; return 0;}
0 0
- 计算二叉树中叶子节点的数目
- 统计二叉树中叶子节点的数目
- 计算二叉树中叶子结点的数目
- 二叉树中叶子节点的个数
- 编写递归算法,计算二叉树中叶子结点的数目
- 以二叉链表为存储结构, 试编写计算二叉树中叶子结点数目的递归算法.
- 编写递归算法 计算二叉树中叶子节点的个数
- 计算二叉树叶子节点的数目
- 统计二叉树中叶子节点的个数
- 二叉树中叶子节点的个数(递归)
- 二叉树中叶子节点的个数(非递归)
- 计算二叉树中叶子结点数的算法
- 求二叉树中叶子节点个数,总的节点个数,第K层的节点个数
- 二叉树中叶子节点的个数第K层的节点个数
- 二叉树3(统计二叉树中叶子节点的个数)
- 二叉树中叶子节点的统计和树高问题
- 求一颗二叉树中叶子节点间最大的路径长度
- {数据结构}计算二叉树中叶子结点个数
- Volley之ImageLoader用法解析
- C++精进篇(五)之―字符串和字符串函数
- gnome-packagekit-3.14.3-5.el7.x86_64
- Ehcache学习笔记
- C++代码中提高程序效率小方法
- 计算二叉树中叶子节点的数目
- leetcode-SQL(1)
- Android广播及其实例
- 每日读物--人工智能:一种现代方法
- OC中的遍历与排序
- C++精进篇(三)之―常量变量等修饰符
- 好的阅读就是主动阅读
- CUDA线程配置:
- 0字节文件删除