struct BinaryTree { char value; BinaryTree* left; BinaryTree* right; }; //求二叉树中的节点个数 //(1)如果二叉树为空,节点个数为0 //(2)如果二叉树不为空,二叉树节点个数 = 左子树节点个数 + 右子树节点个数 + 1 int getNodeNums(BinaryTree* pRoot) { if(pRoot==NULL) return 0; return getNodeNums(pRoot->left)+getNodeNums(pRoot->right)+1; } //求二叉树中叶子节点的个数 //(1)如果二叉树为空,返回0 //(2)如果二叉树不为空且左右子树为空,返回1 //(3)如果二叉树不为空,且左右子树不同时为空,返回左子树中叶子节点个数加上右子树中叶子节点个数 int getLeafNodeNums(BinaryTree* pRoot) { if(pRoot==NULL) return 0; if(pRoot->left==NULL && pRoot->right==NULL) return 1; int leftNums = getLeafNodeNums(pRoot->left); int rightNums = getLeafNodeNums(pRoot->right); return leftNums+rightNums; }
相关推荐
实验报告 采用链式存储结构求任意给出的二叉树的叶子节点个数,过程有详解,包括过程中的错误。
递归算法计算二叉树中叶子节点的数目
/*求二叉树叶子节点个数 -- 采用递归和非递归方法 经调试可运行源码及分析如下: ***/ #include #include #include using std::cout; using std::cin; using std::endl; using std::stack; /*二叉树结点定义*/ ...
此程序可以建立二叉树并输出此二叉树的叶子节点总数与节点总数
二叉树非递归求叶子节点,以及前序、中序、后序遍历算法
构建二叉树,求解叶子结点。VC6.0调试通过。
先序创建二叉树并遍历计算节点数 先序创建二叉树并遍历计算节点数
c代码-求二叉树的叶子节点和高度
0. 建立二叉树(方法0) 1. 建立二叉树(方法1) 2. 统计叶子结点个数 3. 求二叉树的树深
本程序为C语言实现二叉树的基本操作,包括创建二叉树,求叶子节点个数,画二叉树,中序遍历二叉树
里面有二叉树的各种遍历算法,如前序,中序,后序等。还有左右子 树的交换问题,请使用VS2008及以上版本打开
编写递归算法,计算二叉树中叶子结点的数目
二叉树采用链式存储结构,此算法可以实现计算一颗给定的二叉树中叶子结点的数目
建立二叉树 能够求叶子结点个数 和度为2的结点个数
先建立一个二叉树,求二叉树的深度,以及求出叶子节点的总数和节点的总数。
实现了二叉树的基本操作(先序遍历、中序遍历、后续遍历,求二叉树高度、结点数、度为1的结点数和叶子结点数)。
用VC编写的完整二叉树叶子节点的统计程序
求一下二叉树里面的叶子节点数 只要在遍历右子树之前加上判断统计就可以了 建立二叉树的原理是先把二叉树看成完全二叉树
自己做的一个比较简单的程序,希望可以有一点作用