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 相关文章推荐
PHP开发入门教程之面向对象
Dec 05 PHP
PHP syntax error, unexpected $end 错误的一种原因及解决
Oct 25 PHP
PHP 类型转换函数intval
Jun 20 PHP
PHP MYSQL乱码问题,使用SET NAMES utf8校正
Nov 30 PHP
php站内搜索并高亮显示关键字的实现代码
Dec 29 PHP
基于PHPExcel的常用方法总结
Jun 13 PHP
PHP用星号隐藏部份用户名、身份证、IP、手机号等实例
Apr 08 PHP
php输出xml属性的方法
Mar 19 PHP
基于php实现的验证码小程序
Dec 13 PHP
thinkPHP框架自动填充原理与用法分析
Apr 03 PHP
通过PHP设置BugFree获取邮箱通知
Apr 25 PHP
分享8个Laravel模型时间戳使用技巧小结
Feb 12 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
php版本的cron定时任务执行器使用实例
2014/08/19 PHP
实用的PHP带公钥加密类分享(每次加密结果都不一样哦)
2014/08/20 PHP
PHP如何实现跨域
2016/05/30 PHP
php使用Jpgraph创建3D饼形图效果示例
2017/02/15 PHP
Redis构建分布式锁
2017/03/28 PHP
select 控制网页内容隐藏于显示的实现代码
2010/05/25 Javascript
js拦截alert对话框另类应用
2013/01/16 Javascript
AngularJS基础学习笔记之控制器
2015/05/10 Javascript
javascript实现简单加载随机色方块
2015/12/25 Javascript
three.js快速入门【推荐】
2017/01/21 Javascript
javascript自执行函数
2017/02/10 Javascript
vue中实现移动端的scroll滚动方法
2018/03/03 Javascript
vue+element实现表单校验功能
2019/05/20 Javascript
详解React 元素渲染
2020/07/07 Javascript
JavaScript实现五子棋小游戏
2020/10/26 Javascript
[06:21]完美世界亚洲区首席发行官竺琦TI3采访
2013/08/26 DOTA
wxpython 学习笔记 第一天
2009/02/09 Python
python 发送json数据操作实例分析
2019/10/15 Python
Python包,__init__.py功能与用法分析
2020/01/07 Python
解析python 中/ 和 % 和 //(地板除)
2020/06/28 Python
python操作微信自动发消息的实现(微信聊天机器人)
2020/07/14 Python
一款纯css3实现的鼠标悬停动画按钮
2014/12/29 HTML / CSS
浅谈基于HTML5的在线视频播放方案
2016/02/18 HTML / CSS
美国最大的无人机经销商:DroneNerds
2018/03/20 全球购物
芝加哥牛排公司:Chicago Steak Company
2018/10/31 全球购物
凯普林包包西班牙官网:Kipling西班牙
2019/04/12 全球购物
面向对象编程是如何提高软件开发水平的
2014/05/06 面试题
自荐信格式
2013/12/01 职场文书
财务管理专业自荐信范文
2013/12/24 职场文书
集团薪酬管理制度
2014/01/13 职场文书
销售人员求职的自我评价分享
2014/03/15 职场文书
《记金华的双龙洞》教学反思
2014/04/19 职场文书
刑事上诉状范文
2015/05/22 职场文书
企业转让协议书(范文2篇)
2019/08/15 职场文书
导游词之宁夏贺兰山岩画
2019/11/08 职场文书
js作用域及作用域链工作引擎
2022/07/07 Javascript