习题-47.c

来自「本人收集的一些数据结构经典算法实现」· C语言 代码 · 共 27 行

C
27
字号
//本程序只给出了算法思想
//读者可以自己完善本程序
typedef struct{
	BTNode node;
	int layer;
} BTNRecord; //包含结点所在层次的记录类型 
int FanMao(Bitree T)//求一棵二叉树的"繁茂度"
{
	int countd; //count数组存放每一层的结点数
	InitQueue(Q); //Q的元素为BTNRecord类型
	EnQueue(Q,{T,0});
	while(!QueueEmpty(Q))
	{
		DeQueue(Q,r);
		count[r.layer]++;
		if(r.node->lchild) 
			EnQueue(Q,{r.node->lchild,r.layer+1});
		if(r.node->rchild)
			EnQueue(Q,{r.node->rchild,r.layer+1});
	} //利用层序遍历来统计各层的结点数
	h=r.layer; //最后一个队列元素所在层就是树的高度
	for(maxn=count[0],i=1;count[i];i++)
		if(count[i]>maxn) 
			maxn=count[i]; //求层最大结点数
		return h*maxn;
}//FanMao

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?