Advertisement

二叉树叶子节点个数计算 -- 用递归与非递归方法

阅读量:
复制代码
    /*求二叉树叶子节点个数 -- 采用递归和非递归方法
    经调试可运行源码及分析如下:
    ***/
    #include <stdlib.h>
    #include <iostream>
    #include <stack>
    
    using std::cout;
    using std::cin;
    using std::endl;
    using std::stack;
    
    /*二叉树结点定义*/
    typedef struct BTreeNode
    {
    char elem;
    struct BTreeNode *pleft;
    struct BTreeNode *pright;
    }BTreeNode;
    
    /*
    求二叉树叶子节点数
    叶子节点:即没有左右子树的结点
    
    递归方式步骤:
    如果给定节点proot为NULL,则是空树,叶子节点为0,返回0;
    如果给定节点proot左右子树均为NULL,则是叶子节点,且叶子节点数为1,返回1;
    如果给定节点proot左右子树不都为NULL,则不是叶子节点,以proot为根节点的子树叶子节点数=proot左子树叶子节点数+proot右子树叶子节点数。

全部评论 (0)

还没有任何评论哟~