使用二叉树递归与非递归方法求节点数
发布时间
阅读量:
阅读量
/*求二叉树节点数 -- 采用递归和非递归方法(本例非递归采用先序遍历)
经调试可运行源码及分析如下:
***/
#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)
还没有任何评论哟~
