PHP实现从上往下打印二叉树的方法


Posted in PHP onJanuary 18, 2018

本文实例讲述了PHP实现从上往下打印二叉树的方法。分享给大家供大家参考,具体如下:

问题

从上往下打印出二叉树的每个节点,同层节点从左至右打印。

解决思路

每层树从左到右打印,所以需要将节点的左右子树存起来,因为先进先出,所以用队列。

实现代码

/*class TreeNode{
  var $val;
  var $left = NULL;
  var $right = NULL;
  function __construct($val){
    $this->val = $val;
  }
}*/
function PrintFromTopToBottom($root)
{
  $queueVal = array();
  $queueNode = array();
  if($root == NULL)
    return $queueVal;
  array_push($queueNode, $root);
  while(!empty($queueNode)){
    $node = array_shift($queueNode);
    if($node->left != NULL)
      array_push($queueNode,$node->left);
    if($node->right != NULL)
      array_push($queueNode,$node->right);
    array_push($queueVal,$node->val);
  }
  return $queueVal;
}

希望本文所述对大家PHP程序设计有所帮助。

PHP 相关文章推荐
第一节--面向对象编程
Nov 16 PHP
默默简单的写了一个模板引擎
Jan 02 PHP
检查php文件中是否含有bom的函数
May 31 PHP
php生成静态文件的多种方法分享
Jul 17 PHP
PHP递归算法的详细示例分析
Feb 19 PHP
PHP mail()函数使用及配置方法
Jan 14 PHP
php自动加载autoload机制示例分享
Feb 20 PHP
自己写的php中文截取函数mb_strlen和mb_substr
Feb 09 PHP
php获取文件类型和文件信息的方法
Jul 10 PHP
PHP/HTML混写的四种方式总结
Feb 27 PHP
Redis在Laravel项目中的应用实例详解
Aug 11 PHP
Laravel 不同生产环境服务器的判断实践
Oct 15 PHP
PHP获取链表中倒数第K个节点的方法
Jan 18 #PHP
PHP获取二叉树镜像的方法
Jan 17 #PHP
PHP实现按之字形顺序打印二叉树的方法
Jan 16 #PHP
PHP实现可添加水印与生成缩略图的图片处理工具类
Jan 16 #PHP
PHP实现找出链表中环的入口节点
Jan 16 #PHP
详解thinkphp中的volist标签
Jan 15 #PHP
thinkphp 中的volist标签在ajax操作中的特殊性(推荐)
Jan 15 #PHP
You might like
单位速度在实战中的运用
2020/03/04 星际争霸
php中文本数据翻页(留言本翻页)
2006/10/09 PHP
浅析Mysql 数据回滚错误的解决方法
2013/08/05 PHP
JS异常处理try..catch语句的作用和实例
2014/05/05 PHP
php7安装yar扩展的方法详解
2017/08/03 PHP
解决php用mysql方式连接数据库出现Deprecated报错问题
2019/12/25 PHP
treepanel动态加载数据实现代码
2012/12/15 Javascript
浏览器的JavaScript引擎的识别方法
2013/10/20 Javascript
JS(JQuery)操作Array的相关方法介绍
2014/02/11 Javascript
javascript类型系统_正则表达式RegExp类型详解
2016/06/24 Javascript
Highcharts学习之数据列
2016/08/03 Javascript
javascript代码调试之console.log 用法图文详解
2016/09/30 Javascript
JS针对Array的各种操作汇总
2016/11/29 Javascript
javascript实现QQ空间相册展示源码
2017/12/12 Javascript
微信小程序module.exports模块化操作实例浅析
2018/12/20 Javascript
详解vue中使用微信jssdk
2019/04/19 Javascript
vue App.vue中的公共组件改变值触发其他组件或.vue页面监听
2019/05/31 Javascript
JS常见面试试题总结【去重、遍历、闭包、继承等】
2019/08/27 Javascript
Node对CommonJS的模块规范
2019/11/06 Javascript
快速解决Vue、element-ui的resetFields()方法重置表单无效的问题
2020/08/12 Javascript
解决vant title-active-color与title-inactive-color不生效问题
2020/11/03 Javascript
Python3基础之条件与循环控制实例解析
2014/08/13 Python
Python中使用__new__实现单例模式并解析
2019/06/25 Python
python 函数的缺省参数使用注意事项分析
2019/09/17 Python
python中count函数简单的实例讲解
2020/02/06 Python
python Shapely使用指南详解
2020/02/18 Python
在django admin中配置搜索域是一个外键时的处理方法
2020/05/20 Python
Python3 Tensorlfow:增加或者减小矩阵维度的实现
2020/05/22 Python
python实现逢七拍腿小游戏的思路详解
2020/05/26 Python
Python+unittest+requests 接口自动化测试框架搭建教程
2020/10/09 Python
用python进行视频剪辑
2020/11/02 Python
悬挂训练绳:TRX
2017/12/14 全球购物
新西兰领先的内衣店:Bendon Lingerie新西兰
2018/07/11 全球购物
Linux内核的同步机制是什么?主要有哪几种内核锁
2016/07/11 面试题
办公室文秘自我评价
2013/09/21 职场文书
委托协议书范本
2014/04/22 职场文书