设为首页 | 加入收藏
首页 bte365手机版
程序人生互联网新闻黑客新闻网络创业
WEB开发
PHPJSPASP.NETJavascriptAJAXjQueryNode.js
编程语言
JavaGolangPythonC++C语言VC++C#
站长之家
建站技巧网络赚钱网站安全
数据库
MySQLMSSQLSQLiteMongoDBRedisAccess存储技术
网页设计
HTML+DIV+CSSFlash网页制作技巧
网络技术
网络综合网络管理无线技术云计算云技术攻防知识安全防护
学电脑
电脑常识WindowsLinuxCPU内存显卡硬盘主板
学开发
开发总结365bet注册网站_365bet手机_365bet注册送18开发工具开发手册面试题
w3school
WEB开发 > PHP >

PHP实现从上往下打印二叉树的方法

发布时间:2018-11-27 | 阅读次数:1156

本文实例讲述了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;
}