PHP完全二叉树定义与实现方法示例
作者:CyborgLin 时间:2023-07-04 10:49:10
本文实例讲述了PHP完全二叉树定义与实现方法。分享给大家供大家参考,具体如下:
若设二叉树的深度为h,除第 h 层外,其它各层 (1~h-1) 的结点数都达到最大个数,第 h 层所有的结点都连续集中在最左边,这就是完全二叉树。
PHP代码实现(暂时实现添加节点、层次遍历节点,删除节点后续更新)
<?php
class Node{
public $value;
public $leftNode;
public $rightNode;
}
/* 找到空节点 */
function findEmpytNode($node, $parent = null){
if(empty($node->value)){
return $node;
}else{
if(empty($node->leftNode->value)){
return $node->leftNode;
}else if(empty($node->rightNode->value)){
return $node->rightNode;
}else{
if(empty($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(empty($node->value)) return ;
echo $node->leftNode->value;
echo $node->rightNode->value;
if(empty($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);
希望本文所述对大家PHP程序设计有所帮助。
来源:http://blog.csdn.net/mxdzchallpp/article/details/51745780
标签:PHP,二叉树
![](/images/zang.png)
![](/images/jiucuo.png)
猜你喜欢
SQL Server中的SELECT会阻塞SELECT吗
2024-01-25 18:08:30
![](https://img.aspxhome.com/file/2023/4/86894_0s.png)
三大原因:按照新HTML标准设计网页好处
2008-11-12 11:23:00
python神经网络Keras实现LSTM及其参数量详解
2023-02-09 14:02:22
![](https://img.aspxhome.com/file/2023/1/70701_0s.jpg)
go语言获取系统盘符的方法
2024-05-22 10:19:47
详解Django3中直接添加Websockets方式
2021-01-05 01:43:22
python字典一键多值实例代码分享
2021-07-08 10:47:52
python基于watchdog库全自动化监控目录文件
2022-04-21 19:17:47
Python函数式编程中itertools模块详解
2022-08-28 20:16:53
Python Parser的用法
2022-05-23 23:53:55
OpenCV使用KNN完成OCR手写体识别
2022-02-17 12:16:21
![](https://img.aspxhome.com/file/2023/9/115079_0s.png)
python中numpy数组的csv文件写入与读取
2021-11-26 06:18:20
django连接Mysql中已有数据库的方法详解
2024-01-23 09:00:59
![](https://img.aspxhome.com/file/2023/1/76841_0s.jpg)
Spring Boot如何解决Mysql断连问题
2024-01-14 23:52:42
![](https://img.aspxhome.com/file/2023/1/97981_0s.png)
golang与pgsql交互的实现
2024-05-25 15:11:52
![](https://img.aspxhome.com/file/2023/4/123954_0s.png)
在Python中调用ggplot的三种方法
2023-08-23 00:40:58
![](https://img.aspxhome.com/file/2023/7/62567_0s.png)
python使用matplotlib的savefig保存时图片保存不完整的问题
2021-07-04 11:50:22
![](https://img.aspxhome.com/file/2023/3/134653_0s.png)
Python常用的json标准库
2022-02-26 10:37:52
Python3.2中的字符串函数学习总结
2021-09-30 04:35:24
利用Python操作excel表格的完美指南
2022-05-21 07:59:09
![](https://img.aspxhome.com/file/2023/2/120972_0s.png)
Python 字符串类型列表转换成真正列表类型过程解析
2021-07-28 18:06:52