PHP如何从上至下打印二叉树,实现方法是什么?

2026-04-03 04:361阅读0评论SEO资源
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计521个文字,预计阅读时间需要3分钟。

PHP如何从上至下打印二叉树,实现方法是什么?

本示例介绍了PHP实现从上往下打印二叉树的方法。分享给广大程序员供参考,具体如下:

问题:从上往下打印出二叉树的每个节点,同层节点从左至右打印。

解决方案:每层节点使用队列存储,依次访问并打印每个节点。

php

// 定义二叉树节点类class TreeNode { public $value; public $left; public $right;

public function __construct($value) { $this->value=$value; $this->left=null; $this->right=null; }}

// 打印二叉树function printBinaryTree($root) { if ($root==null) { return; }

$queue=array($root); // 使用数组作为队列存储节点

while (!empty($queue)) { $node=array_shift($queue); // 取出队列首元素 echo $node->value . ' '; // 打印节点值

if ($node->left !=null) { array_push($queue, $node->left); // 左子节点入队 } if ($node->right !=null) { array_push($queue, $node->right); // 右子节点入队 } }}

// 构建二叉树$root=new TreeNode(1);$root->left=new TreeNode(2);$root->right=new TreeNode(3);$root->left->left=new TreeNode(4);$root->left->right=new TreeNode(5);$root->right->left=new TreeNode(6);$root->right->right=new TreeNode(7);

// 打印二叉树printBinaryTree($root);?>

输出结果:

12 3 4 5 6 7

本文实例讲述了PHP实现从上往下打印二叉树的方法。分享给大家供大家参考,具体如下:

问题

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程序设计算法总结》、《php字符串(string)用法总结》、《PHP数组(Array)操作技巧大全》、《PHP常用遍历算法与技巧总结》及《PHP数学运算技巧总结》

希望本文所述对大家PHP程序设计有所帮助。

标签:方法本文

本文共计521个文字,预计阅读时间需要3分钟。

PHP如何从上至下打印二叉树,实现方法是什么?

本示例介绍了PHP实现从上往下打印二叉树的方法。分享给广大程序员供参考,具体如下:

问题:从上往下打印出二叉树的每个节点,同层节点从左至右打印。

解决方案:每层节点使用队列存储,依次访问并打印每个节点。

php

// 定义二叉树节点类class TreeNode { public $value; public $left; public $right;

public function __construct($value) { $this->value=$value; $this->left=null; $this->right=null; }}

// 打印二叉树function printBinaryTree($root) { if ($root==null) { return; }

$queue=array($root); // 使用数组作为队列存储节点

while (!empty($queue)) { $node=array_shift($queue); // 取出队列首元素 echo $node->value . ' '; // 打印节点值

if ($node->left !=null) { array_push($queue, $node->left); // 左子节点入队 } if ($node->right !=null) { array_push($queue, $node->right); // 右子节点入队 } }}

// 构建二叉树$root=new TreeNode(1);$root->left=new TreeNode(2);$root->right=new TreeNode(3);$root->left->left=new TreeNode(4);$root->left->right=new TreeNode(5);$root->right->left=new TreeNode(6);$root->right->right=new TreeNode(7);

// 打印二叉树printBinaryTree($root);?>

输出结果:

12 3 4 5 6 7

本文实例讲述了PHP实现从上往下打印二叉树的方法。分享给大家供大家参考,具体如下:

问题

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程序设计算法总结》、《php字符串(string)用法总结》、《PHP数组(Array)操作技巧大全》、《PHP常用遍历算法与技巧总结》及《PHP数学运算技巧总结》

希望本文所述对大家PHP程序设计有所帮助。

标签:方法本文