PHP完全二叉树定义与实现方法示例
发布:smiling 来源: PHP粉丝网 添加日期:2021-08-11 14:04:25 浏览: 评论:0
这篇文章主要介绍了PHP完全二叉树定义与实现方法,简单描述了完全二叉树的概念并结合实例形式给出了完全二叉树的定义、节点查找、添加、设置、打印等相关操作技巧,需要的朋友可以参考下
本文实例讲述了PHP完全二叉树定义与实现方法。分享给大家供大家参考,具体如下:
若设二叉树的深度为h,除第 h 层外,其它各层 (1~h-1) 的结点数都达到最大个数,第 h 层所有的结点都连续集中在最左边,这就是完全二叉树。
PHP代码实现(暂时实现添加节点、层次遍历节点,删除节点后续更新)
- <?php
- class Node{
- public $value;
- public $leftNode;
- public $rightNode;
- }
- /* 找到空节点 */
- function findEmpytNode($node, $parent = null){
- if(emptyempty($node->value)){
- return $node;
- }else{
- if(emptyempty($node->leftNode->value)){
- return $node->leftNode;
- }else if(emptyempty($node->rightNode->value)){
- return $node->rightNode;
- }else{
- if(emptyempty($parent) || $node->value == $parent->rightNode->value){
- return findEmpytNode($node->leftNode, $node);
- }else{
- return findEmpytNode($parent->rightNode, $node);
- }
- }
- }
- }
- /* 添加节点 */
- function addNode($node, $value){
- $emptyNode = findEmpytNode($node);
- setNode($emptyNode, $value);
- }
- /* 设置节点 */
- function setNode($node, $value){
- $node->value = $value;
- $node->leftNode = new Node();
- $node->rightNode = new Node();
- }
- /* 打印 */
- function printTree($node, $parent = null){
- if(emptyempty($node->value)) return ;
- echo $node->leftNode->value;
- echo $node->rightNode->value;
- if(emptyempty($parent) || $node->value == $parent->rightNode->value){
- printTree($node->leftNode, $node);
- }else{
- printTree($parent->rightNode, $node);
- }
- }
- $head = new Node();
- setNode($head, 1);
- addNode($head, 2);
- addNode($head, 3);
- addNode($head, 4);
- addNode($head, 5);
- addNode($head, 6);
- printTree($head);
Tags: PHP二叉树
相关文章
- ·php 二叉树遍历算法与例子(2015-04-08)
- ·php实现二叉树中和为某一值的路径方法(2021-10-31)
推荐文章
热门文章
最新评论文章
- 写给考虑创业的年轻程序员(10)
- PHP新手上路(一)(7)
- 惹恼程序员的十件事(5)
- PHP邮件发送例子,已测试成功(5)
- 致初学者:PHP比ASP优秀的七个理由(4)
- PHP会被淘汰吗?(4)
- PHP新手上路(四)(4)
- 如何去学习PHP?(2)
- 简单入门级php分页代码(2)
- php中邮箱email 电话等格式的验证(2)