第九周项目3(3)- 求二叉树b的叶子节点个数
2017-11-09 10:54
176 查看
/*
*Copyright(c)2017,烟台大学计算机学院
*All right reserved.
*文件名:sk.cpp btree.h btree.cpp
*作者:盛凯
*完成日期:2017年11月9日
*版本号:v1.0
*
*问题描述:输出二叉树b的叶子节点个数
*输入描述:无
*程序输出:见运行结果
*/
sk.cpp:
#include <stdio.h>
#include "btree.h"
int LeafNodes(BTNode *b) //求二叉树b的叶子节点个数
{
int num1,num2;
if (b==NULL)
return 0;
else if (b->lchild==NULL && b->rchild==NULL)
return 1;
else
{
num1=LeafNodes(b->lchild);
num2=LeafNodes(b->rchild);
return (num1+num2);
}
}
int main()
{
BTNode *b;
CreateBTNode(b,"A(B(D,E(H(J,K(L,M(,N))))),C(F,G(,I)))");
printf("二叉树b的叶子节点个数: %d\n",LeafNodes(b));
DestroyBTNode(b);
return 0;
}
反思:层层递归,将叶子节点个数层层返回并想加。
*Copyright(c)2017,烟台大学计算机学院
*All right reserved.
*文件名:sk.cpp btree.h btree.cpp
*作者:盛凯
*完成日期:2017年11月9日
*版本号:v1.0
*
*问题描述:输出二叉树b的叶子节点个数
*输入描述:无
*程序输出:见运行结果
*/
sk.cpp:
#include <stdio.h>
#include "btree.h"
int LeafNodes(BTNode *b) //求二叉树b的叶子节点个数
{
int num1,num2;
if (b==NULL)
return 0;
else if (b->lchild==NULL && b->rchild==NULL)
return 1;
else
{
num1=LeafNodes(b->lchild);
num2=LeafNodes(b->rchild);
return (num1+num2);
}
}
int main()
{
BTNode *b;
CreateBTNode(b,"A(B(D,E(H(J,K(L,M(,N))))),C(F,G(,I)))");
printf("二叉树b的叶子节点个数: %d\n",LeafNodes(b));
DestroyBTNode(b);
return 0;
}
反思:层层递归,将叶子节点个数层层返回并想加。
相关文章推荐
- 第十周 项目3-3-求二叉树b的叶子节点个数
- 第十周项目5 求二叉树的叶子节点个数
- 第十周项目--求二叉树的叶子节点的个数
- 第10周SHH数据结构-【项目3 -求二叉树b的叶子节点个数 . 】
- 第九周项目3(1)-计算二叉树节点个数
- 第十周 项目3 求二叉树b的叶子节点个数
- 第十周项目5 求二叉树叶子节点的个数
- 第十周项目3-利用二叉树遍历思想解决问题(3)求二叉树b的叶子节点个数
- 第九周项目3(2)- 输出所有叶子节点
- 二叉树的创建,遍历,求高度,算出节点数,算出叶子节点数,左右子树的交换,二叉树的销毁。
- [二叉树专题]:递归求解二叉树的叶子节点数目
- 二叉树 删除所有叶子节点
- 求二叉树的叶子节点数目
- 二叉树的字符串创建和遍历,求深度,叶子节点数
- 二叉树-输出树中从根到每个叶子节点的路径
- 创建二叉树求叶子节点个数
- 第十周 项目3 (1) 计算二叉树节点个数
- 第九周项目一 二叉树的链式存储结构运算
- c++二叉树(统计叶节点,判断两颗二叉树是否相等,交换二叉树的左孩子右孩子,输出叶子到根节点的路径)
- [原][二叉树专题]:递归求解二叉树的叶子节点数目