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中的正规表达式(二)
Oct 09 PHP
php discuz 主题表和回帖表的设计
Mar 13 PHP
php侧拉菜单 漂亮,可以向右或者向左展开,支持FF,IE
Oct 15 PHP
php中AES加密解密的例子小结
Feb 18 PHP
用PHP代码在网页上生成图片
Jul 01 PHP
简单了解PHP编程中数组的指针的使用
Nov 30 PHP
PHP判断JSON对象是否存在的方法(推荐)
Jul 06 PHP
php结合md5的加密解密算法实例
Sep 30 PHP
php检查函数必传参数是否存在的实例详解
Aug 28 PHP
thinkPHP框架自动填充原理与用法分析
Apr 03 PHP
Laravel 5.4前后台分离,通过不同的二级域名访问方法
Oct 13 PHP
php桥接模式应用案例分析
Oct 23 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
Get或Post提交值的非法数据处理
2006/10/09 PHP
MySQL数据库转移,access,sql server 转 MySQL 的图文教程
2007/09/02 PHP
PHP删除非空目录的函数代码小结
2013/02/28 PHP
php查询ip所在地的方法
2014/12/05 PHP
PHP定时执行任务实现方法详解(Timer)
2015/07/30 PHP
PHP安装BCMath扩展的方法
2019/02/13 PHP
Ajax::prototype 源码解读
2007/01/22 Javascript
事件模型在各浏览器中存在差异
2010/10/20 Javascript
解析javascript 实用函数的使用详解
2013/05/10 Javascript
jquery获取iframe中的dom对象(两种方法)
2013/07/02 Javascript
jQuery浏览器CSS3特写兼容实例
2015/01/19 Javascript
js实现同一个页面多个渐变效果的方法
2015/04/10 Javascript
JS实现支持多选的遍历下拉列表代码
2015/08/20 Javascript
jquery实现向下滑出的二级导航下滑菜单效果
2015/08/25 Javascript
jQuery+ajax实现文章点赞功能的方法
2015/12/31 Javascript
原生JS实现图片轮播效果
2016/12/26 Javascript
JavaScript数据结构之优先队列与循环队列实例详解
2017/10/27 Javascript
python把数组中的数字每行打印3个并保存在文档中的方法
2018/07/17 Python
用python统计代码行的示例(包括空行和注释)
2018/07/24 Python
python脚本开机自启的实现方法
2019/06/28 Python
如何提高python 中for循环的效率
2020/04/15 Python
Python ADF 单位根检验 如何查看结果的实现
2020/06/03 Python
什么是Assembly(程序集)
2014/09/14 面试题
写一个方法,输入一个文件名和一个字符串,统计这个字符串在这个文件中出现的次数
2016/04/13 面试题
授权委托书
2014/07/31 职场文书
车队安全员岗位职责
2015/02/15 职场文书
全国法制宣传日活动总结
2015/05/05 职场文书
色戒观后感
2015/06/12 职场文书
学术研讨会主持词
2015/07/04 职场文书
2019最新版股权转让及委托持股协议书范本
2019/08/07 职场文书
python中的装饰器该如何使用
2021/06/18 Python
RPM包方式安装Oracle21c的方法详解
2021/08/23 Oracle
yolov5返回坐标的方法实例
2022/03/17 Python
Linux、ubuntu系统下查看显卡型号、显卡信息详解
2022/04/07 Servers
vue中的可拖拽宽度div的实现示例
2022/04/08 Vue.js
Python自动化工具之实现Excel转Markdown表格
2022/04/08 Python