在《数据结构》严蔚敏版上的习题看到这个问题。
繁茂度的定义:各层节点数的最大值与树的高度的乘积
树的深度好求,递归调用就行了。关键在于如何求出各层的最大节点树?下面是我的一种实现方法:
bitree.h
#include <iostream>
#include <cstdlib>
#include <cstdio>
#include <stack>
using namespace std;
typedef struct TNode
{
int data;
struct TNode* lchild;
struct TNode* rchild;
}BiTree, *pBiTree;
void creat_tree(pBiTree &rt)
{
char ch;
ch=getchar();
if('#'==ch)
{
rt=NULL;
}
else
{
rt=(pBiTree)malloc(sizeof(BiTree));
rt->data=ch;
creat_tree(rt->lchild); //构造左子树
creat_tree(rt->