每周数据结构【3】:设计一个非递归的算法求二叉树高度
来源:互联网 发布:unity3d 释放资源 编辑:程序博客网 时间:2024/06/05 20:12
思路:用到非递归的思想,毫无疑问就是使用 树的层次遍历方法来做
采用层次遍历算法,设置变量level记录当前的节点所在存数。设置变量level指向当前节点的最右边,每次遍历之后就和level进行比较,若二者相等,那么层数加1,并让level指向下一层的最右边节点,至少遍历完成。level就是二叉树高度
int BTdepth(Bitree T)
{
if(!T) //树空,高度是0
{
return 0;}
int front=-1, rear=-1;
int last=0, level=0; //last指向下一层的第一个节点位置
Bitree Q[maxsize];
Q[++rear]=T; //将根入队列
Bitree p;
while(front<rear)//队列不为空,则循环
{
p=Q[++front];//队列元素出队列。
if(p->lchild) Q[++rear]=p->lchild;//左孩子入队
if(p->rchild) Q[++rear]=p->rchild;//右孩子入队
if(front==level)//处理该层的最右边节点
{
level++;//层数加1
last=rear;//last指向下一层
}
}
return level;
}
0 1
- 每周数据结构【3】:设计一个非递归的算法求二叉树高度
- 二叉树的操作3非递归算法求二叉树的高度
- 求二叉树的高度(非递归)
- 求树高度的非递归算法
- 求二叉树的深度(或高度)的非递归算法
- 层次遍历求二叉树的高度(非递归)
- 求二叉树的深度,递归与非递归算法
- 求二叉树深度的递归和非递归算法
- 二叉树基本算法,递归非递归遍历以及求高度、宽度等
- 数据结构-二叉树先序中序后序的非递归算法
- 求二叉树节点最大距离的非递归算法
- 求二叉树深度的非递归算法
- 数据结构----二叉树遍历的非递归算法实现
- 二叉树递归求高度,非递归求高度,层次遍历
- 非递归求树的高度
- 利用层次遍历非递归求二叉树高度
- 递归求二叉树的高度
- 递归求二叉树的高度
- spider for doubantop250 -- scrapy框架
- 解决httpclient返回中文有部分乱码的情况
- C++某些函数的介绍
- Linux进程间共享内存机制
- ViewPager子页面的点击事件监听
- 每周数据结构【3】:设计一个非递归的算法求二叉树高度
- 短网址服务系统 设计
- 正则表达式中对 word、^word、[^word]、^[^word]、^$的理解。
- 接口可以初始化
- dispatchTouchEvent方法介绍
- UITableview
- ArcGIS API for JavaScript开发教程系列(四)之离线部署与跨域问题
- 如何在Mac OS X上安装 Ruby运行环境
- Android实现将控件等View转化为Bitmap对象,通过ImageView显示的功能