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 相关文章推荐
一个ORACLE分页程序,挺实用的.
Oct 09 PHP
php下获取客户端ip地址的函数
Mar 15 PHP
PHP中10个不常见却非常有用的函数
Mar 21 PHP
PHP的cURL库功能简介 抓取网页、POST数据及其他
Apr 07 PHP
Fine Uploader文件上传组件应用介绍
Jan 06 PHP
Yii框架中 find findAll 查找出制定的字段的方法对比
Sep 10 PHP
php微信开发之批量生成带参数的二维码
Jun 26 PHP
php 字符串中是否包含指定字符串的多种方法
Apr 12 PHP
PHP 计算两个特别大的整数实例代码
May 07 PHP
laravel 之 Eloquent 模型修改器和序列化示例
Oct 17 PHP
PHP程序员简单的开展服务治理架构操作详解(三)
May 14 PHP
PHP 对接美团大众点评团购券(门票)的开发步骤
Apr 03 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
图片存储与浏览一例(Linux+Apache+PHP+MySQL)
2006/10/09 PHP
php使用for语句输出三角形的方法
2015/06/09 PHP
使用php-timeit估计php函数的执行时间
2015/09/06 PHP
cnblogs中在闪存中屏蔽某人的实现代码
2010/11/14 Javascript
javascript中的数字与字符串相加实例分析
2011/08/14 Javascript
JS中的public和private对象,即static修饰符
2012/01/18 Javascript
一个背景云变换js特效 鼠标移动背景云变化
2012/12/28 Javascript
改变隐藏的input中value的值代码
2013/12/30 Javascript
javascript 对象数组根据对象object key的值排序
2015/03/09 Javascript
js动态修改表格行colspan列跨度的方法
2015/03/30 Javascript
JavaScript每天定时更换皮肤样式的方法
2015/07/01 Javascript
js事件冒泡、事件捕获和阻止默认事件详解
2016/08/04 Javascript
footer定位页面底部(代码分享)
2017/03/07 Javascript
JS+HTML5 FileReader实现文件上传前本地预览功能
2020/03/27 Javascript
vue实现裁切图片同时实现放大、缩小、旋转功能
2018/03/02 Javascript
vue-dplayer 视频播放器实例代码
2019/11/08 Javascript
javascript将扁平的数据转为树形结构的高效率算法
2020/02/27 Javascript
js实现类选择器和name属性选择器的示例步骤
2021/02/07 Javascript
[00:12]2018DOTA2亚洲邀请赛 Somnus丶M出阵单挑
2018/04/06 DOTA
基于Python的身份证号码自动生成程序
2014/08/15 Python
MySQLdb ImportError: libmysqlclient.so.18解决方法
2014/08/21 Python
Python编写通讯录通过数据库存储实现模糊查询功能
2019/07/18 Python
浅谈Python 递归算法指归
2019/08/22 Python
python实现复制大量文件功能
2019/08/31 Python
python实现宿舍管理系统
2019/11/22 Python
python3实现elasticsearch批量更新数据
2019/12/03 Python
python中rb含义理解
2020/06/18 Python
python实现三壶谜题的示例详解
2020/11/02 Python
AE美国鹰美国官方网站:American Eagle Outfitters
2016/08/22 全球购物
Omio美国:全欧洲低价大巴、火车和航班搜索和比价
2017/11/08 全球购物
社区维稳工作方案
2014/06/06 职场文书
专题民主生活会对照检查材料思想汇报
2014/09/29 职场文书
护士年终考核评语
2014/12/31 职场文书
解除同居协议书
2015/01/29 职场文书
Vue中插槽slot的使用方法与应用场景详析
2021/06/08 Vue.js
MySQL定时备份数据库(全库备份)的实现
2021/09/25 MySQL