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 用sock技术发送邮件的函数
Jul 21 PHP
PHP表单提交表单名称含有点号(.)则会被转化为下划线(_)
Dec 14 PHP
使用PHP会话(Session)实现用户登陆功能
Jun 29 PHP
使用PHP下载CSS文件中的图片的代码
Sep 24 PHP
php include类文件超时问题处理
Feb 06 PHP
php将图片文件转换成二进制输出的方法
Jun 10 PHP
Discuz!X中SESSION机制实例详解
Sep 23 PHP
Zend Framework教程之Loader以及PluginLoader用法详解
Mar 09 PHP
CI框架的安全性分析
May 18 PHP
PHP微商城开源代码实例
Mar 27 PHP
Yii框架中使用PHPExcel的方法分析
Jul 25 PHP
php实现根据身份证获取精准年龄
Feb 26 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 xml-rpc远程调用
2008/12/19 PHP
PHP连接SQLServer2005 的问题解决方法
2010/07/19 PHP
php实现无限级分类实现代码(递归方法)
2011/01/01 PHP
详解php中反射的应用
2016/03/15 PHP
jquery 简单图片导航插件jquery.imgNav.js
2010/03/17 Javascript
推荐8款jQuery轻量级树形Tree插件
2014/11/12 Javascript
javascript实现单击和双击并存的方法
2014/12/13 Javascript
使用postMesssage()实现iframe跨域页面间的信息传递
2016/03/29 Javascript
Nodejs全局安装和本地安装的不同之处
2016/07/04 NodeJs
js实现右键自定义菜单
2016/12/03 Javascript
AngularJS Toaster使用详解
2017/02/24 Javascript
JS实现图片预加载之无序预加载功能代码
2017/05/12 Javascript
jQuery自定义多选下拉框效果
2017/06/19 jQuery
jQuery实现鼠标滑过商品小图片上显示对应大图片功能【测试可用】
2018/04/27 jQuery
vue.js层叠轮播效果的实例代码
2018/11/08 Javascript
原生js实现可兼容PC和移动端的拖动滑块功能详解【测试可用】
2019/08/15 Javascript
详解Vue中CSS样式穿透问题
2019/09/12 Javascript
详解Vue 数据更新了但页面没有更新的 7 种情况汇总及延伸总结
2020/05/28 Javascript
JS事件循环机制event loop宏任务微任务原理解析
2020/08/04 Javascript
selenium 反爬虫之跳过淘宝滑块验证功能的实现代码
2020/08/27 Javascript
vue 根据选择的月份动态展示日期对应的星期几
2021/02/06 Vue.js
[43:33]EG vs Spirit Supermajor 败者组 BO3 第一场 6.4
2018/06/05 DOTA
paramiko模块安装和使用(远程登录服务器)
2014/01/27 Python
Java分治归并排序算法实例详解
2017/12/12 Python
django框架创建应用操作示例
2019/09/26 Python
ubuntu上安装python的实例方法
2019/09/30 Python
python使用html2text库实现从HTML转markdown的方法详解
2020/02/21 Python
python使用pymongo与MongoDB基本交互操作示例
2020/04/09 Python
使用HTML5 Canvas为图片填充颜色和纹理的教程
2016/03/21 HTML / CSS
应届生.NET方向面试题
2015/05/23 面试题
Linux的主要特性
2016/09/03 面试题
公司司机岗位职责
2014/02/07 职场文书
群众路线教育实践活动思想汇报(2014特荐篇)
2014/09/16 职场文书
领导干部“四风”查摆问题个人整改措施
2014/10/28 职场文书
订货会邀请函
2015/01/31 职场文书
公安干警正风肃纪心得体会
2016/01/15 职场文书