假设二叉树采用二叉链表存储结构,设计一个算法,求非空二叉树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);
}
相关推荐
violet-lz22 分钟前
数据结构四大简单排序算法详解:直接插入排序、选择排序、基数排序和冒泡排序
数据结构·算法·排序算法
小白.cpp1 小时前
list链表容器
数据结构·链表·list
仰泳的熊猫1 小时前
LeetCode:207. 课程表
数据结构·c++·算法·leetcode
liu****1 小时前
19.map和set的封装
开发语言·数据结构·c++·算法
拾光Ծ2 小时前
【C++高阶数据结构】红黑树
数据结构·算法
Qiuner2 小时前
《掰开揉碎讲编程-长篇》重生之哈希表易如放掌
数据结构·算法·leetcode·力扣·哈希算法·哈希·一文读懂
艾莉丝努力练剑2 小时前
【C++模版进阶】如何理解非类型模版参数、特化与分离编译?
linux·开发语言·数据结构·c++·stl
立志成为大牛的小牛2 小时前
数据结构——二十五、邻接矩阵(王道408)
开发语言·数据结构·c++·学习·程序人生
编程岁月3 小时前
java面试-0215-HashMap有序吗?Comparable和Comparator区别?集合如何排序?
java·数据结构·面试
木井巳3 小时前
[Java数据结构与算法]详解排序算法
java·数据结构·算法·排序算法