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;
    
    /*
    求二叉树节点数 
    对任意一个给定子树的节点数,左子树节点数+右子树节点数+1,加1是加上根节点自身。
    
    递归方式:
    如果给定根节点为NULL,则返回0;
    如果给定根节点不为NULL,则返回: 左子树节点数+右子树节点数+1
    */
    
    /*递归实现求节点个数*/
    int get_nodes_number(BTreeNode *proot)

全部评论 (0)

还没有任何评论哟~