php实现二叉树

二叉树是数据结构中不可忽略的部分,但是相关的书籍上很少有用php来实现二叉树的,下面是我用php参考C++实现二叉树的代码

一、二叉树的数组实现方式

<?php
/**
* 二叉树数组表示
*/
class BinaryTree{
private $size,$array=array();

//创建树并初始化节点
function __construct($size,$root){
$this->size=$size;
for ($i = 0; $i < $size; $i++) { 
$this->array[$i] = 0;
}
$this->array[0]=$root;
}

//查询节点
function searchNode($nodeCode){
if ($nodeCode>=$this->size || $nodeCode<0) {
return false;
}else{
if ($this->array[$nodeCode]==0) {
return null;
}else{
return $this->array[$nodeCode];
}
}
}

//增加树节点
function addNode($nodeCode,$place,$nodeValue){
if($nodeCode>=$this->size || $nodeCode<0){
return false;
}else {
//判断插入节点是左孩子还是右孩子
if ($place==0) {
//判断该位置是否为空,为空进行插入操作
if($this->array[$nodeCode*2+1]==0){
//判断该节点是否是新的叶子节点,如果是,则对相应位置进行补0操作
if($nodeCode*2+1>=$this->size){
for ($i=$this->size; $i < $nodeCode*2+1; $i++) { 
$this->array[$i]=0;
}
$this->size=$nodeCode*2+2;
$this->array[$nodeCode*2+1]=$nodeValue;
}else{
$this->array[$nodeCode*2+1]=$nodeValue

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值