思路:

嘻嘻,请读者自己手动模拟。博主这里不知道怎么说。

拓展:

该算法思路也适用于

(1)每层的结点个数

(2)树的最大宽度

(3)节点位于某一层

int height(BiTree T){

if(T==null)

return 0;

int front=-1, rear=-1;//front 出队指针 rear 入队指针

int last = 0, level=0;//last 每一层的最右指针(front==last时候一层遍历结束 level++)

BiTree Q[Maxsize];//模拟队列

Q[++rear] = T;

BiTree p;

while(front

p = Q[++front];//开始出队 因为front要赶到lash 实现level++

if(p->lchild)

Q[++rear] = p->lchild;

if(p->rchild)

Q[++rear] = p->rchild;

if(front==last){

level++;

last=rear;//last指向下层节点

}

}

}

您可能感兴趣的

java 非递归求二叉树高度_非递归算法实现二叉树高度相关推荐

  1. 用递归和非递归求斐波那契数列

    递归的方法 #include<stdio.h> #include<stdlib.h> 递归的方式计算斐波那契数 int FeiBo(int f) {int n = 0;if ( ...

  2. 非递归先、中、后序遍历二叉树(C语言)

    文章目录 前言 一.二叉树非递归遍历算法 1.先序遍历 2.中序遍历 3.后序遍历 二.完整程序 三.运行结果实例 前言 本程序采用C语言编写,栈和二叉树的基本操作函数基于严蔚敏老师的<数据结构 ...

  3. fibonacci斐波那契数列详解 递归求Fn非递归求Fn求n最近的斐波那契数

    斐波那契fibonacci 斐波那契额数列即前两项F(0)和F(1)都是1,之后的每一项都是前两项相加和即F(3)=2,F(4)=3,F(5)=5; 通项公式:F(n+2)=F(n+1)+F(n). ...

  4. 语言非递归求解树的高度_算法素颜(11):无死角“盘”它!二分查找树

    引言 <菜鸟也能"种"好二叉树!>一文中提到了:为了方便查找,需要进行分层分类整理.而满足这种目标的数据结构之一就是树. 树的叶子节点可以看作是最终要搜寻的目标物:叶子 ...

  5. 创建的二叉树后续非递归遍历结果为_一入递归深似海,从此offer是路人

    前言 今天我们来总结二叉树的前中后序以及层次遍历的递归与非递归的写法.我们都知道二叉树遍历的递归写法很简单,但是面试的时候面试官往往考察的不是我们递归的写法,他们满怀期待你写出非递归的解法,而当你只会 ...

  6. 6-4 二叉树的非递归遍历 (25分)_本周小结!(二叉树)

    给「代码随想录」一个星标吧! ❝ 以后每周加上一个本周小结怎么样? ❞ 本周小结 发现大家周末的时候貌似都不在学习状态,周末的文章浏览量和打卡情况照工作日差很多呀,可能是本周日是工作日了,周六得好好放 ...

  7. 利用栈实现递归函数的非递归计算(非递归求阶乘)

    递归程序在执行时需要系统提供隐式栈这种数据结构来头现,对于一般的递归过程,仿照递归算法执行过程中递归工作栈的状态变化可直接写出相应的非递归算法,利用栈消除递归过程的步骤如下. (1)设置一个工作栈存放 ...

  8. 编程实现背包的递归和非递归两种解法_算法动态规划(七)背包问题4

    ⚠️今天继续我们来探讨背包问题中的完全背包问题.完全背包:N个物品,容量为V,每个物品可以无限次使用,求达到V的最值. ???今日练习(一)零钱兑换(LeetCode-322).给定一批硬币coins ...

  9. 二分查找递归与非递归的时间比较_我们说一说Python的查找算法!

    相信大家在面试开发岗和算法岗时,评委最喜欢问的就是:您能给我说一下查找和排序算法有哪些?今天咱们就说一说Python中最常用的查找算法,下期我们再推出排序算法. 首先要明白查找是查什么?我们希望能给定 ...

最新文章

  1. 不到 10 个提升逼格的 Redis 命令
  2. nginx nodejs环境配置_基于docker的nodejs、php开发环境,包含多种组合安装
  3. DtCms.DAL.WebSet.cs
  4. java 方法重载 应用举例,Java 实例 - 重载(overloading)方法中使用 Varargs
  5. 四十、Java中字节流和字符流介绍和区别
  6. 手把手教你启用Win10的Linux子系统 Ubuntu
  7. 【medium】220. Contains Duplicate III
  8. 《A Discussion on Solving Partial Differential Equations using Neural Networks》梳理
  9. 【转】JS判断SWF,JPG加载完毕、兼容(Activex,plugIn)所有浏览器
  10. C++原子性实现无锁队列
  11. python实现货币贷款分期计算(等额本金/等额本息)
  12. EasyUI 中 Combobox里的onChange和onSelect事件的区别
  13. JS让网页字体大小随窗口大小改变而改变
  14. 2016预测哪些公司增值最猛?
  15. 批量生成独一无二的NFT猫猫图,这项目王多鱼会投吗?
  16. 苹果新款笔记本_谷歌发布售价99美元的新款Wi-Fi路由器(全文)_苹果 新款MacBook Pro 13英寸_笔记本新闻...
  17. html边框阴影咋设置,css阴影边框怎么设置
  18. C#关键字扫盲——Sealed 密封
  19. 各大主流招聘平台的优缺点和适合人群【总结】
  20. 火车票报销凭证打印跑政通

热门文章

  1. 【学亮IT手记】枚举类入门实例讲解
  2. 多媒体计算机探索 教案,多媒体的教学设计
  3. C++设计模式--命令模式(Command)
  4. Qt 判断一个点是否落在三角形内(算法)
  5. Java集合入门总结
  6. 3.1.1 计算机网络之数据链路的基本概念和功能概述
  7. 三菱a系列motion软体_合肥三菱FR-A840-07700-2
  8. Node.js 之 新手安装详解 及 npm 配置说明
  9. vant 做表格_Vant List 列表
  10. 深入理解linux根目录结构