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中记录用户访问过的产品,在cookie记录产品id,id取得产品信息
May 04 PHP
PHP合并两个数组的两种方式的异同
Sep 14 PHP
浅析PHP程序设计中的MVC编程思想
Jul 28 PHP
PHP文件锁函数flock()详细介绍
Nov 18 PHP
帝国CMS留言板回复后发送EMAIL通知客户
Jul 06 PHP
php中switch语句用法详解
Aug 17 PHP
深入浅析yii2-gii自定义模板的方法
Apr 26 PHP
thinkphp自带验证码全面解析
Sep 18 PHP
PHP文件上传小程序 适合初学者学习!
May 23 PHP
PHP设计模式之建造者模式(Builder)原理与用法案例详解
Dec 12 PHP
TP框架实现上传一张图片和批量上传图片的方法分析
Apr 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
php下载文件源代码(强制任意文件格式下载)
2014/05/09 PHP
PHP实现二叉树深度优先遍历(前序、中序、后序)和广度优先遍历(层次)实例详解
2018/04/20 PHP
php7 参数、整形及字符串处理机制修改实例分析
2020/05/25 PHP
基于javascript 闭包基础分享
2013/07/10 Javascript
addEventListener()第三个参数useCapture (Boolean)详细解析
2013/11/07 Javascript
jq实现左侧显示图片右侧文字滑动切换效果
2015/08/04 Javascript
jQuery往返城市和日期查询实例讲解
2015/10/09 Javascript
ionic+AngularJs实现获取验证码倒计时按钮
2017/04/22 Javascript
bootstrap动态添加面包屑(breadcrumb)及其响应事件的方法
2017/05/25 Javascript
使用JS实现气泡跟随鼠标移动的动画效果
2017/09/16 Javascript
原生js中ajax访问的实例详解
2017/09/19 Javascript
vue + element-ui实现简洁的导入导出功能
2017/12/22 Javascript
微信小程序分享功能之按钮button 边框隐藏和点击隐藏
2018/06/14 Javascript
详解Puppeteer前端自动化测试实践
2019/02/21 Javascript
通过说明与示例了解js五种设计模式
2019/06/17 Javascript
js中值引用和地址引用实例分析
2019/06/21 Javascript
微信小程序实现下拉框功能
2019/07/16 Javascript
vue 实现一个简单的全局调用弹窗案例
2020/09/10 Javascript
详解用python写一个抽奖程序
2019/05/10 Python
Django REST framework 分页的实现代码
2019/06/19 Python
python3注册全局热键的实现
2020/03/22 Python
基于python实现把json数据转换成Excel表格
2020/05/07 Python
浅谈多卡服务器下隐藏部分 GPU 和 TensorFlow 的显存使用设置
2020/06/30 Python
浅谈python出错时traceback的解读
2020/07/15 Python
python 使用xlsxwriter循环向excel中插入数据和图片的操作
2021/01/01 Python
梵蒂冈和罗马卡:Omnia Card Pass
2018/02/10 全球购物
美国浴缸、水槽和水龙头购物网站:Vintage Tub & Bath
2019/11/05 全球购物
介绍一下游标
2012/01/10 面试题
EJB3.1都有哪些改进
2012/11/17 面试题
销售员试用期自我评价
2014/09/15 职场文书
党的群众路线教育实践活动剖析材料
2014/09/30 职场文书
中学生检讨书1000字
2014/10/28 职场文书
小学优秀教师事迹材料
2014/12/16 职场文书
综合测评自我评价
2015/03/06 职场文书
企业转让协议书(范文2篇)
2019/08/15 职场文书
spring项目中切面及AOP的使用方法
2021/06/26 Java/Android