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动态生成虚拟现实VRML网页
Oct 09 PHP
php下使用SMTP发邮件的代码
Jan 10 PHP
PHP在获取指定目录下的目录,在获取的目录下面再创建文件,多平台
Aug 03 PHP
PHP反转字符串函数strrev()函数的用法
Feb 04 PHP
关于PHP实现异步操作的研究
Feb 03 PHP
深入解析phpCB批量转换的代码示例
Jun 27 PHP
PHP使用feof()函数读文件的方法
Nov 07 PHP
php中return的用法实例分析
Feb 28 PHP
PHP基于MySQL数据库实现对象持久层的方法
Jun 17 PHP
Symfony2之session与cookie用法小结
Mar 18 PHP
PHP crypt()函数的用法讲解
Feb 15 PHP
PHP pthreads v3使用中的一些坑和注意点分析
Feb 21 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
使用NetBeans + Xdebug调试PHP程序的方法
2011/04/12 PHP
摘自织梦CMS中的图片处理类
2015/08/08 PHP
javascript AutoScroller 函数类
2009/05/29 Javascript
用JQuery 判断某个属性是否存在hasAttr的解决方法
2013/04/26 Javascript
jquery easyui滚动条部分设置介绍
2013/09/12 Javascript
JS+CSS实现大气清新的滑动菜单效果代码
2015/10/22 Javascript
基于jQuery实现照片墙自动播放特效
2017/01/12 Javascript
EasyUI修改DateBox和DateTimeBox的默认日期格式示例
2017/01/18 Javascript
nodejs和C语言插入mysql数据库乱码问题的解决方法
2017/04/14 NodeJs
vue-cli结合Element-ui基于cropper.js封装vue实现图片裁剪组件功能
2018/03/01 Javascript
详解vue2.0+axios+mock+axios-mock+adapter实现登陆
2018/07/19 Javascript
详解关于Vue版本不匹配问题(Vue packages version mismatch)
2018/09/17 Javascript
详解如何用VUE写一个多用模态框组件模版
2018/09/27 Javascript
layui.use模块外部使用其内部定义的js封装函数方法
2019/09/16 Javascript
layui富文本编辑器前端无法取值的解决方法
2019/09/18 Javascript
Vue组件生命周期运行原理解析
2020/11/25 Vue.js
JavaScript函数柯里化实现原理及过程
2020/12/02 Javascript
[00:33]DOTA2上海特级锦标赛 CDEC战队宣传片
2016/03/04 DOTA
[56:35]DOTA2上海特级锦标赛主赛事日 - 5 总决赛Liquid VS Secret第一局
2016/03/06 DOTA
[01:16]DOTA2小知识课堂 Ep.03 芒果树无伤肉山
2019/12/05 DOTA
处理Python中的URLError异常的方法
2015/04/30 Python
Python模块结构与布局操作方法实例分析
2017/07/24 Python
python读取xlsx的方法
2018/12/25 Python
pygame实现烟雨蒙蒙下彩虹雨
2019/11/11 Python
python基于socket函数实现端口扫描
2020/05/28 Python
美国孕妇装品牌:Destination Maternity
2018/02/04 全球购物
美国开幕式潮店:Opening Ceremony
2018/02/10 全球购物
全球最大的游戏市场:G2A
2018/07/05 全球购物
英国书籍、CD、DVD和游戏的第一道德零售商:Awesome Books
2020/02/22 全球购物
美国购买韩国护肤和美容产品网站:Althea Korea
2020/11/16 全球购物
在SQL Server中创建数据库主要有那种方式
2013/09/10 面试题
大学生社会实践评语
2014/04/25 职场文书
竞选班干部演讲稿600字
2014/08/20 职场文书
先进个人主要事迹范文
2015/11/04 职场文书
Nginx+Tomcat负载均衡集群的实现示例
2021/10/24 Servers
Win11 22H2 2022怎么更新? 获得Win1122H22022版本升级技巧
2022/09/23 数码科技