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入门小知识
Mar 24 PHP
PHP Header用于页面跳转要注意的几个问题总结
Oct 03 PHP
php checkbox 取值详细说明
Aug 19 PHP
学习php笔记 字符串处理
Oct 19 PHP
php提交表单时判断 if($_POST[submit])与 if(isset($_POST[submit])) 的区别
Feb 08 PHP
php中经典方法实现判断多维数组是否为空
Oct 23 PHP
php中常用的预定义变量小结
May 09 PHP
zend framework文件上传功能实例代码
Dec 25 PHP
30个php操作redis常用方法代码例子
Jul 05 PHP
一个简单的php路由类
May 29 PHP
PHP常见过waf webshell以及最简单的检测方法
May 21 PHP
laravel 获取当前url的别名方法
Oct 11 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 Ajax中文乱码问题解决方法
2009/02/27 PHP
php简单判断两个字符串是否相等的方法
2015/07/13 PHP
Symfony生成二维码的方法
2016/02/04 PHP
PHP从零开始打造自己的MVC框架之入口文件实现方法详解
2019/06/03 PHP
jQuery live
2009/05/15 Javascript
JSON 和 JavaScript eval使用说明
2010/06/13 Javascript
妙用Jquery的val()方法
2012/06/27 Javascript
在JavaScript中typeof的用途介绍
2013/04/11 Javascript
js中的push和join方法使用介绍
2013/10/08 Javascript
node.js中使用node-schedule实现定时任务实例
2014/06/03 Javascript
javascript表格隔行变色加鼠标移入移出及点击效果的方法
2015/04/10 Javascript
Flow之一个新的Javascript静态类型检查器
2015/12/21 Javascript
js实现简单排列组合的方法
2016/01/27 Javascript
js+html5实现canvas绘制网页时钟的方法
2016/05/21 Javascript
基于node.js express mvc轻量级框架实践
2017/09/14 Javascript
react 父组件与子组件之间的值传递的方法
2017/09/14 Javascript
JavaScript+Canvas实现彩色图片转换成黑白图片的方法分析
2018/07/31 Javascript
操作按钮悬浮固定在微信小程序底部的实现代码
2019/08/02 Javascript
Python日志模块logging简介
2015/04/13 Python
SQLite3中文编码 Python的实现
2017/01/11 Python
python编写微信远程控制电脑的程序
2018/01/05 Python
Champion官网:美国冠军运动服装
2017/01/25 全球购物
Keds加拿大官网:购买帆布运动鞋和皮鞋
2019/09/26 全球购物
Java和Javasciprt的区别
2012/09/02 面试题
关于圣诞节的广播稿
2014/01/26 职场文书
医学生自我评价
2014/01/27 职场文书
高一政治教学反思
2014/01/28 职场文书
关于旷工的检讨书
2014/02/02 职场文书
弘扬民族精神演讲稿
2014/05/07 职场文书
爱耳日宣传活动总结
2014/07/05 职场文书
人力资源管理专业自荐书
2014/07/07 职场文书
Nginx + consul + upsync 完成动态负载均衡的方法详解
2021/03/31 Servers
解决pytorch-gpu 安装失败的记录
2021/05/24 Python
Java使用httpRequest+Jsoup爬取红蓝球号码
2021/07/02 Java/Android
django项目、vue项目部署云服务器的详细过程
2022/07/23 Servers
td 内容自动换行 table表格td设置宽度后文字太多自动换行
2022/12/24 HTML / CSS