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 数组实例说明
Aug 18 PHP
php中获取关键词及所属来源搜索引擎名称的代码
Feb 15 PHP
php GeoIP的使用教程
Mar 09 PHP
解析用PHP读写音频文件信息的详解(支持WMA和MP3)
May 10 PHP
在yii中新增一个用户验证的方法详解
Jun 20 PHP
利用php+mcDropdown实现文件路径可在下拉框选择
Aug 07 PHP
PHP动态页生成静态页的3种常用方法
Nov 13 PHP
PHP中通过trigger_error触发PHP错误示例
Jun 23 PHP
php类的自动加载操作实例详解
Sep 28 PHP
Json_decode 解析json字符串为NULL的解决方法(必看)
Feb 17 PHP
PHP使用HTML5 FileApi实现Ajax上传文件功能示例
Jul 01 PHP
php ZipArchive实现多文件打包下载实例
Oct 31 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
rrmdir php中递归删除目录及目录下的文件
2011/05/15 PHP
php自动获取关键字的方法
2015/01/06 PHP
PHP与Java对比学习日期时间函数
2016/07/03 PHP
php对xml文件的增删改查操作实现方法分析
2017/05/19 PHP
Jquery 基础学习笔记之文档处理
2009/05/29 Javascript
jQuery中与toggleClass等价的程序段 以及未来学习的方向
2010/03/18 Javascript
基于jQuery的动态表格插件
2011/03/28 Javascript
基于jQuery实现文本框缩放以及上下移动功能
2014/11/24 Javascript
javascript显式类型转换实例分析
2015/04/25 Javascript
JavaScript中setMonth()方法的使用详解
2015/06/11 Javascript
JS判断form内所有表单是否为空的简单实例
2016/09/09 Javascript
微信小程序 PHP生成带参数二维码
2017/02/21 Javascript
vue页面使用阿里oss上传功能的实例(一)
2017/08/09 Javascript
vue.js实例对象+组件树的详细介绍
2017/10/20 Javascript
vuejs 切换导航条高亮(路由菜单高亮)的方法示例
2018/05/29 Javascript
总结javascript三元运算符知识点
2018/09/28 Javascript
JavaScript常见事件处理程序实例总结
2019/01/05 Javascript
vue 弹窗时 监听手机返回键关闭弹窗功能(页面不跳转)
2019/05/10 Javascript
vue 重塑数组之修改数组指定index的值操作
2020/08/09 Javascript
原生js实现自定义难度的扫雷游戏
2021/01/22 Javascript
Python 搭建Web站点之Web服务器与Web框架
2016/11/06 Python
python+mysql实现学生信息查询系统
2019/02/21 Python
python pytest进阶之conftest.py详解
2019/06/27 Python
PyQt 图解Qt Designer工具的使用方法
2019/08/06 Python
Python连接SQLite数据库并进行增册改查操作方法详解
2020/02/18 Python
opencv 图像轮廓的实现示例
2020/07/08 Python
python如何设置静态变量
2020/09/07 Python
html5简介及新增功能介绍
2020/05/18 HTML / CSS
教师自荐书
2013/10/08 职场文书
新学期校长寄语
2014/01/18 职场文书
抗震救灾标语
2014/06/26 职场文书
党的群众路线教育实践活动个人对照检查材料(教师)
2014/11/04 职场文书
2015年幼儿园教育教学工作总结
2015/05/25 职场文书
如何使用php生成zip压缩包
2021/04/21 PHP
ROS系统将python包编译为可执行文件的简单步骤
2021/07/25 Python
ORACLE中dbms_output.put_line输出问题的解决过程
2022/06/28 Oracle