怎样求二叉树的叶子结点?

数据结构题。

我不知道你想问的判断一个二叉树的结点是子结点还是一个二叉树的叶子结点有几个.所以只能给你都写出来了.
这个其实很简单,你从根结点开始,做一个深度优先搜索,判断每一个结点是不是有非空子结点,如果是的话,你在预先设置的计数器(实际上你定义的一个变量)上加1.深度搜索,简单的说,就是如果你从一个根结点访问到一个它的子结点,这时我们并不急于再访问根结点的其他子结点,而是接着访问这个子结点的子结点,像这样以深度作为优先考虑对象的便是深度优先搜索.
我想你用深度优先搜索应该能很容易解决有关叶子结点的问题
温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-12-01
如果只是数据库,不用编程实现的话。

首先要判断这个二叉树是不是满二叉树。

是的话,好像是2的层次方-1这样算吧。

不是的话就麻烦了,要自己看。

有时候会出很奇怪的题目,比如四叉树的叶子结点。我就被阴过。
第2个回答  推荐于2017-10-12
  二叉树中叶子节点的度为0,即它的左右儿子都为空。
在数学中,两个集合X和Y的笛卡儿积(Cartesian product),又称直积,表示为X × Y,是其第一个对象是X的成员而第二个对象是Y的一个成员的所有可能的有序对。
比如集合A={1,2,3}和B={2,3,4}
A×B={{1,2},{1,3},{1,4},{2,2},{2,3},{2,4},{3,2},{3,3},{3,4}}
也就是A中的每个元素分别与B中的每个元素组成的有序对,比如对于A中的元素1,它与B中某个元素组成的所有可能的有序对为{1,2},{1,3},{1,4}
笛卡尔积是有顺序的,不满足交换率,也就是B×A不等于A×B
B×A={{2,1},{2,2},{2,3},{3,1},{3,2},{3,3},{4,1},{4,2},{4,3}}
笛卡尔积是一种很重要的数学运算,比如我们的欧式空间坐标系,还有关系数据库中也用它进行表的连接等。
  在计算机科学中,二叉树是每个节点最多有两个子树的树结构。通常子树被称作“左子树”(left subtree)和“右子树”(right subtree)。二叉树常被用于实现二叉查找树和二叉堆。
  二叉树的每个结点至多只有二棵子树(不存在度大于2的结点),二叉树的子树有左右之分,次序不能颠倒。二叉树的第i层至多有2^{i-1}个结点;深度为k的二叉树至多有2^k-1个结点;对任何一棵二叉树T,如果其终端结点数为n_0,度为2的结点数为n_2,则n_0=n_2+1。
  一棵深度为k,且有2^k-1个节点称之为满二叉树;深度为k,有n个节点的二叉树,当且仅当其每一个节点都与深度为k的满二叉树中,序号为1至n的节点对应时,称之为完全二叉树。
相似回答