求树的最大宽度(层次遍历法)
二叉树宽度:使用队列,层次遍历二叉树。在上一层遍历完成后,下一层的所有节点已经放到队列中,此时队列中的元素个数就是下一层的宽度。以此类推,依次遍历下一层即可求出二叉树的最大宽度。
怎么一层一层地分开呢?用一个变量len来记录当前层的结点数,出一个结点就len–,len==0的时候就退出循环,然后又把队列中的节点数赋值给len
int getWidth(BiNode head) { if(head==null) return 0; int max=1; LinkedList<BiNode>ll=new LinkedList<BiNode>(); ll.add(head); while(true){ int len=ll.size(); //获取当前层的节点数 if(len==0) //队列空,二叉树已经遍历完 break; while(len>0){ BiNode b=ll.poll(); len--; 出一个结点-1,为0就退循环if(b.left!=null) ll.add(b.left); if(b.right!=null) ll.add(b.right); } max=Math.max(max, ll.size()); } return max; }
求树的最大宽度(层次遍历法)相关推荐
- Trees on the level UVA - 122 (二叉树的层次遍历)
题目链接:https://vjudge.net/problem/UVA-122 题目大意:输入一颗二叉树,你的任务是按从上到下,从左到右的顺序输出各个结点的值.每个结点都按照从根节点到它的移动序列给出 ...
- 【数学建模学习】matlab实现评价模型——层次分析法(AHP)
目录 1概述 2算法实现流程 3实例 4matlab实现层次分析法 5计算结果 1概述 层次分析法,简称AHP,是评价模型中的一种算法,指将与决策总是有关的元素分解成目标.准则.方案等层次,在此基础之 ...
- java建树_JAVA实现通过中序遍历和后序遍历序列建树,并求树的高度,用层次遍历做验证...
作为例子的树长这样: package bstpractice; import java.util.ArrayList; import java.util.Arrays; import java.uti ...
- 树的基本概念和遍历规则 数据结构和算法 二叉树遍历(前序、中序、后序、层次、深度优先、广度优先遍历)
zsychanpin 博客园 首页 新随笔 联系 订阅 管理 树的基本概念和遍历规则 树的递归定义 树是n(n>0)个结点的有限集,这个集合满足下面条件: ⑴有且仅有一个结点没有前驱 ...
- (伪代码)树的前中后遍历和层次遍历算法实现(考研适用,递归和非递归)
文章目录 前言 一.递归实现树的遍历 二.非递归实现 层次遍历 总结 前言 2022考研初试结束,总结了一些考研中基本常用算法.这篇主要是关于树的前中后遍历,递归实现和非递归实现两种,现在很多自命题在 ...
- 二叉树 前序、中序、后序、层次遍历及非递归实现 查找、统计个数、比较、求深度的递归实现
一.基本概念 每个结点最多有两棵子树,左子树和右子树,次序不可以颠倒. 性质: 1.非空二叉树的第n层上至多有2^(n-1)个元素. 2.深度为h的二叉树至多有2^h-1个结点. 满二叉树:所有终端都 ...
- 数据结构实验之求二叉树后序遍历和层次遍历
数据结构实验之求二叉树后序遍历和层次遍历 Description 已知一棵二叉树的前序遍历和中序遍历,求二叉树的后序遍历和层序遍历. Input 输入数据有多组,第一行是一个整数t (t<100 ...
- 数据结构 | 第十一章:二叉树和其他树 | 【前序遍历】【中序遍历】【后序遍历】【层次遍历】 | 并查集
第5-10章:线性结构,元素之间存在线性次序(线性表.数组与矩阵.栈.队列.跳表和散列表 第11-15章:层次结构(二叉树和树.优先队列.竞赛树.搜索树) 文章目录 11.1 树 11.2 二叉树 1 ...
- LCA倍增法 求树的最近公共祖先(模板)
LCA倍增法 求树的最近公共祖先 查询树上任意两个节点之间的路径信息,实际上就是找这两个节点的LCA,因为唯一路径就是这两个节点分别到LCA会合,所以关键问题就是求LCA,需要的路径信息可在找LCA过 ...
最新文章
- [地球人]BlogEngine.NET[Appwo.com版]+采集器
- 全国计算机等级考试题库二级C操作题100套(第30套)
- HttpClient官方sample代码的深入分析(连接池)
- python中字符串:声明、编码、函数、格式化
- mysql5.7延迟_[MySQL] 号称永久解决了复制延迟问题的并行复制,MySQL5.7-阿里云开发者社区...
- Nginx 服务器安装及配置文件详解
- hysys动态模拟教程_hysys动态模拟介绍
- 基于多输入模型及句法结构的中文评论情感分析方法
- 利用AFD进行播出级的自动幅型比控制
- 湖北大学98届计算机网络,我校学子在“H3C”杯全国大学生网络技术大赛中获一等奖...
- 进化算法的产生与发展
- 2.1.1.15使用WIFI网卡1_准备工作及配置内核
- 直击|知乎App增加视频回答入口 视频流归到问题下
- ramdisk文件系统的介绍与制作
- Access 密码破解原理- -
- 吉林警察学院计算机录取分,2017年吉林警察学院录取分数线
- C++打印之字形矩阵
- 区块链与人工智能技术融合 AI复制人类智能
- WPS 如何设置表格内文字段落
- aix oracle timed out ora-03113,ORA-03113 ORA-16072 错误
热门文章
- Android高级特性笔记
- 王者荣耀KPL秋季赛总决赛预测(AG VS DYG)
- 大学高数常微分方程思维导图_高等数学各章节知识点框架 常微分方程.pdf
- 西门子em235模块的功能_多图细讲,模拟量模块与变送器的接线
- oppo计算机锁屏快捷键,电脑如何快速锁屏
- Civil3D2018-01使用配置
- 如何使用python编程抢京东优惠券 知乎_小猿圈Python之实现京东秒杀功能技巧
- Centos6.8系统镜像下载
- liunx 红帽6.8、 oracle11g 安装指南
- Ubuntu Qt项目编译提示 cannot find -lGL