假设二叉树采用二叉链表存储结构,设计一个算法,求非空二叉树b的宽度(即具有结点数最多的那一层的结点个数)。

题目描述:假设二叉树采用二叉链表存储结构,设计一个算法,求非空二叉树b的宽度(即具有结点数最多的那一层的结点个数)。

分析: 每次递归时,如果当前结点不为空,就将当前层数的宽度+1,并更新最大宽度。然后递归遍历左右子树,将层数加1。 最后最大宽度在全局变量 MAX 里。

c 复制代码
int MAX = -1;		//存放最大宽度
int width[100];	//每层的宽度
void Width(BiTree T,int k){    //k为层数,初始值为 0
	if(T == NULL)
		return;
	width[k]++;
	MAX = MAX < count[k] ? count[k] : MAX;
	Width(T->lchild,k + 1);
	Width(T->rchild,k + 1);
}
相关推荐
iceslime8 分钟前
算法设计与分析实验题-序列对齐
数据结构·c++·算法·算法设计与分析·序列对齐
SuperCandyXu1 小时前
leetcode0310. 最小高度树-medium
数据结构·c++·算法·leetcode
Koma-forever2 小时前
List<T>中每次取固定长度的数据
数据结构·list
pystraf2 小时前
P2572 [SCOI2010] 序列操作 Solution
数据结构·算法·线段树·洛谷
dot to one5 小时前
C++ 渗透 数据结构中的二叉搜索树
数据结构·c++·算法·visual studio
长安城没有风5 小时前
数据结构 集合类与复杂度
java·数据结构
好易学·数据结构6 小时前
可视化图解算法36: 序列化二叉树-I(二叉树序列化与反序列化)
数据结构·算法·leetcode·二叉树·力扣·序列化·牛客
MSTcheng.7 小时前
【数据结构】算法的复杂度
数据结构·算法
姜行运9 小时前
数据结构【二叉搜索树(BST)】
android·数据结构·c++·c#
yzlAurora18 小时前
删除链表倒数第N个节点
数据结构·链表