计算二叉树中叶子节点的数目
2016-03-25 22:18
363 查看
[align=left]描述[/align]
先序建立一棵二叉树,采用二叉链表结构存储,并计算该二叉树中叶子节点的数目。
[align=left]输入[/align]
输入一串先序遍历字符串,根据此字符串建立一棵二叉树(以指针方式存储)。
如输入某二叉树的先序序列为ABC##DE#G##F###(其中#表示空格字符,空格字符代表空树)。
[align=left]输出[/align]
输出叶子节点的个数(输出结果后换行)。
[align=left]输入样例[/align]
ABC##DE#G##F###
[align=left]输出样例[/align]
3
先序建立一棵二叉树,采用二叉链表结构存储,并计算该二叉树中叶子节点的数目。
[align=left]输入[/align]
输入一串先序遍历字符串,根据此字符串建立一棵二叉树(以指针方式存储)。
如输入某二叉树的先序序列为ABC##DE#G##F###(其中#表示空格字符,空格字符代表空树)。
[align=left]输出[/align]
输出叶子节点的个数(输出结果后换行)。
[align=left]输入样例[/align]
ABC##DE#G##F###
[align=left]输出样例[/align]
3
#include <iostream> #include <stdlib.h> #include <cstdio> #define DataType char using 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; }
相关文章推荐
- gnome-packagekit-3.14.3-5.el7.x86_64
- C++精进篇(三)之―常量变量等修饰符
- 好的阅读就是主动阅读
- java 之 helloworld
- Ehcache学习笔记
- idea中使用scala运行spark出现Exception in thread "main" java.lang.NoClassDefFoundError: scala/collection/GenTraversableOnce$class
- C++精进篇(五)之―字符串和字符串函数
- leetcode-SQL(1)
- 哈夫曼编码
- warning: mysql-community-libs-5.7.11-1.el7.x86_64.rpm: Header V3 DSA/SHA1 Signature, key ID 5072e1f5
- svn merge部分的详细说明
- 堆排算法实现
- DAY5 6吧
- 追寻自然与文明的脚步
- IOS学习 collectionView 创建应用管理 涉及单独用类方法从plist文件中取数据
- Volley之ImageLoader用法解析
- 分离式编译模式
- ok210使用-自己做NFS文件系统
- adb 启动报错
- 1.ok6410移植bootloader,移植u-boot,学习u-boot命令