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 相关文章推荐
substr()函数中文版
Oct 09 PHP
精通php的十大要点(上)
Feb 04 PHP
用PHP实现Ftp用户的在线管理
Feb 16 PHP
php+mysql删除指定编号员工信息的方法
Jan 14 PHP
php简单实现多字节字符串翻转的方法
Mar 31 PHP
php数组生成html下拉列表的方法
Jul 20 PHP
PHP+Mysql+jQuery文件下载次数统计实例讲解
Oct 10 PHP
php提交过来的数据生成为txt文件
Apr 28 PHP
php抽奖概率算法(刮刮卡,大转盘)
Apr 17 PHP
php微信公众账号开发之前五个坑(一)
Sep 18 PHP
PHP获取指定日期是星期几的实现方法
Nov 30 PHP
tp5.1 框架数据库高级查询技巧实例总结
May 25 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采集时被封ip的解决方法
2010/08/29 PHP
PHP函数实现从一个文本字符串中提取关键字的方法
2015/07/01 PHP
简单介绍win7下搭建apache+php+mysql开发环境
2015/08/06 PHP
Yii操作数据库实现动态获取表名的方法
2016/03/29 PHP
php面向对象值单例模式
2016/05/03 PHP
php微信公众平台开发之微信群发信息
2016/09/13 PHP
Opacity.js
2007/01/22 Javascript
js 未结束的字符串常量错误解决方法
2010/06/13 Javascript
一行代码告别document.getElementById
2012/06/01 Javascript
javascript结合html5 canvas实现(可调画笔颜色/粗细/橡皮)的涂鸦板
2013/04/27 Javascript
JavaScript中判断原生函数检查function是否是原生代码
2014/09/09 Javascript
Javascript显示和隐藏ul列表的方法
2015/07/15 Javascript
jquery插件jquery.confirm弹出确认消息
2015/12/22 Javascript
JQuery实现网页右侧随动广告特效
2016/01/17 Javascript
全面理解JavaScript中的继承(必看)
2016/06/16 Javascript
vue路由插件之vue-route
2019/06/13 Javascript
基于Proxy的小程序状态管理实现
2019/06/14 Javascript
vue+vant-UI框架实现购物车的复选框全选和反选功能
2019/11/05 Javascript
Node.JS发送http请求批量检查文件中的网页地址、服务是否有效可用
2019/11/20 Javascript
Vue项目中使用mock.js的完整步骤
2021/01/12 Vue.js
Element-ui 自带的两种远程搜索(模糊查询)用法讲解
2021/01/29 Javascript
Python爬虫番外篇之Cookie和Session详解
2017/12/27 Python
Python学习笔记基本数据结构之序列类型list tuple range用法分析
2019/06/08 Python
pandas 使用均值填充缺失值列的小技巧分享
2019/07/04 Python
Python+selenium点击网页上指定坐标的实例
2019/07/05 Python
pandas实现excel中的数据透视表和Vlookup函数功能代码
2020/02/14 Python
pytorch 模型的train模式与eval模式实例
2020/02/20 Python
Python使用Chrome插件实现爬虫过程图解
2020/06/09 Python
纯CSS3实现图片无间断轮播效果
2016/08/25 HTML / CSS
美德少年事迹材料
2014/01/23 职场文书
市场营销管理毕业生自荐信
2014/03/03 职场文书
调查研究项目计划书
2014/04/29 职场文书
敬业奉献模范事迹材料
2014/12/24 职场文书
2015年社区纪检工作总结
2015/04/21 职场文书
新年晚会开场白
2015/05/29 职场文书
JS中如何优雅的使用async await详解
2021/10/05 Javascript