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字符串截取问题
Nov 28 PHP
发一个php简单的伪原创程序,配合商城采集用的
Oct 12 PHP
PHP系列学习之日期函数使用介绍
Aug 18 PHP
php分页函数示例代码分享
Feb 24 PHP
用PHP和Shell写Hadoop的MapReduce程序
Apr 15 PHP
PHP实现数字补零功能的2个函数介绍
May 12 PHP
PHP文件锁函数flock()详细介绍
Nov 18 PHP
Dwz与thinkphp整合下的数据导出到Excel实例
Dec 04 PHP
php银联网页支付实现方法
Mar 04 PHP
试用php中oci8扩展
Jun 18 PHP
帝国CMS留言板回复后发送EMAIL通知客户
Jul 06 PHP
PhpStorm2020 + phpstudyV8 +XDebug的教程详解
Sep 17 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提取数据库内容中的图片地址并循环输出
2010/03/21 PHP
PHP daddslashes 使用方法介绍
2012/10/26 PHP
PHP生成不重复随机数的方法汇总
2014/11/19 PHP
PHP结合Mysql数据库实现留言板功能
2016/03/04 PHP
PHP内存缓存功能memcached示例
2016/10/19 PHP
一个检测表单数据的JavaScript实例
2014/10/31 Javascript
JS+CSS实现仿支付宝菜单选中效果代码
2015/09/25 Javascript
javascript设计模式--策略模式之输入验证
2015/11/27 Javascript
picLazyLoad 实现图片延时加载(包含背景图片)
2016/07/21 Javascript
AngularJS基础 ng-keypress 指令简单示例
2016/08/02 Javascript
Angualrjs和bootstrap相结合实现数据表格table
2017/03/30 Javascript
浅谈Vue render函数在ElementUi中的应用
2018/09/06 Javascript
NodeJS服务器实现gzip压缩的示例代码
2018/10/12 NodeJs
vue框架下部署上线后刷新报404问题的解决方案(推荐)
2019/04/03 Javascript
JavaScript实现的滚动公告特效【基于jQuery】
2019/07/10 jQuery
[03:11]2014DOTA2国际邀请赛-VG掉入败者组 独家专访357
2014/07/19 DOTA
利用Python画ROC曲线和AUC值计算
2016/09/19 Python
Python实现的快速排序算法详解
2017/08/01 Python
Python的SimpleHTTPServer模块用处及使用方法简介
2018/01/22 Python
Windows 64位下python3安装nltk模块
2018/09/19 Python
python爬虫租房信息在地图上显示的方法
2019/05/13 Python
Form表单及django的form表单的补充
2019/07/25 Python
python3实现单目标粒子群算法
2019/11/14 Python
Python使用pyyaml模块处理yaml数据
2020/04/14 Python
Django Admin 上传文件到七牛云的示例代码
2020/06/20 Python
python和js交互调用的方法
2020/06/23 Python
使用OpenCV去除面积较小的连通域
2020/07/05 Python
Django搭建项目实战与避坑细节详解
2020/12/06 Python
快速创建 HTML5 Canvas 电信网络拓扑图的示例代码
2018/03/21 HTML / CSS
Speedo速比涛德国官方网站:世界领先的泳装品牌
2019/08/26 全球购物
员工考核管理制度
2014/02/02 职场文书
2014年维稳工作总结
2014/11/18 职场文书
个人股份转让协议书范本
2015/01/28 职场文书
同学聚会通知书
2015/04/20 职场文书
2015年“世界无车日”活动方案
2015/05/06 职场文书
重温经典:乔布斯在斯坦福大学的毕业演讲(双语)
2019/08/26 职场文书