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 相关文章推荐
Apache2 httpd.conf 中文版
Dec 06 PHP
10个可以简化php开发过程的MySQL工具
Apr 11 PHP
php开发文档 会员收费1期
Aug 14 PHP
PHP utf-8编码问题,utf8编码,数据库乱码,页面显示输出乱码
Apr 08 PHP
PHP获取客户端真实IP地址的5种情况分析和实现代码
Jul 08 PHP
PHP之sprintf函数用法详解
Nov 12 PHP
PHP加密解密字符串汇总
Apr 26 PHP
Zend Framework基本页面布局分析
Mar 19 PHP
PHP大神的十大优良习惯
Sep 14 PHP
php 7新特性之类型申明详解
Jun 06 PHP
Laravel框架中VerifyCsrfToken报错问题的解决
Aug 30 PHP
php微信开发之关键词回复功能
Jun 13 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
mysql_fetch_assoc和mysql_fetch_row的功能加起来就是mysql_fetch_array
2007/01/15 PHP
CodeIgniter框架过滤HTML危险代码
2014/06/12 PHP
php实现字符串首字母转换成大写的方法
2015/03/17 PHP
PHP实现事件机制实例分析
2015/06/26 PHP
浅谈PHP中关于foreach使用引用变量的坑
2016/11/14 PHP
php使用include 和require引入文件的区别
2017/02/16 PHP
javascript中的几个运算符
2007/06/29 Javascript
非主流的textarea自增长实现js代码
2011/12/20 Javascript
javascript 函数声明与函数表达式的区别介绍
2013/10/05 Javascript
jquery遍历之parent()和parents()的区别及parentsUntil()方法详解
2013/12/02 Javascript
如何在JavaScript中实现私有属性的写类方式(二)
2013/12/04 Javascript
JavaScript实现按Ctrl键打开新页面
2014/09/04 Javascript
使用JS获取当前地理位置方法汇总
2014/12/18 Javascript
JavaScript模拟鼠标右键菜单效果
2020/12/08 Javascript
jQuery实现布局高宽自适应的简单实例
2016/05/28 Javascript
完美解决js传递参数中加号和&号自动改变的方法
2016/10/11 Javascript
JS实现仿PS的调色板效果完整实例
2016/12/21 Javascript
webpack入门必知必会
2017/01/16 Javascript
js禁止Backspace键使浏览器后退的实现方法
2017/09/01 Javascript
Javascript网页抢红包外挂实现分享
2018/01/11 Javascript
vue2.0 实现导航守卫的具体用法(路由守卫)
2018/05/17 Javascript
angular4中*ngFor不能对返回来的对象进行循环的解决方法
2018/09/12 Javascript
浅谈React Event实现原理
2018/09/20 Javascript
使用jquery Ajax实现上传附件功能
2018/10/23 jQuery
详解Vue+Element的动态表单,动态表格(后端发送配置,前端动态生成)
2019/04/20 Javascript
TensorFlow绘制loss/accuracy曲线的实例
2020/01/21 Python
Django扫码抽奖平台的配置过程详解
2021/01/14 Python
css3 给背景设置渐变色的方法
2019/09/12 HTML / CSS
Lucene推荐的分页方式是什么?
2015/12/07 面试题
毕业生个人投资创业计划书
2014/01/04 职场文书
镇党委书记群众路线整改措施思想汇报
2014/10/13 职场文书
2014年创卫工作总结
2014/11/24 职场文书
《去年的树》教学反思
2016/02/18 职场文书
话题作文之财富(600字)
2019/12/03 职场文书
分析Python感知线程状态的解决方案之Event与信号量
2021/06/16 Python
为什么MySQL选择Repeatable Read作为默认隔离级别
2021/07/26 MySQL