PHP完全二叉樹定義與實(shí)現(xiàn)方法示例
本文實(shí)例講述了PHP完全二叉樹定義與實(shí)現(xiàn)方法。分享給大家供大家參考,具體如下:
若設(shè)二叉樹的深度為h,除第 h 層外,其它各層 (1~h-1) 的結(jié)點(diǎn)數(shù)都達(dá)到最大個(gè)數(shù),第 h 層所有的結(jié)點(diǎn)都連續(xù)集中在最左邊,這就是完全二叉樹。

PHP代碼實(shí)現(xiàn)(暫時(shí)實(shí)現(xiàn)添加節(jié)點(diǎn)、層次遍歷節(jié)點(diǎn),刪除節(jié)點(diǎn)后續(xù)更新)
<?php
class Node{
public $value;
public $leftNode;
public $rightNode;
}
/* 找到空節(jié)點(diǎn) */
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);
}
}
}
}
/* 添加節(jié)點(diǎn) */
function addNode($node, $value){
$emptyNode = findEmpytNode($node);
setNode($emptyNode, $value);
}
/* 設(shè)置節(jié)點(diǎn) */
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);
更多關(guān)于PHP相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《PHP數(shù)據(jù)結(jié)構(gòu)與算法教程》、《PHP基本語(yǔ)法入門教程》、《php面向?qū)ο蟪绦蛟O(shè)計(jì)入門教程》、《php字符串(string)用法總結(jié)》、《php+mysql數(shù)據(jù)庫(kù)操作入門教程》及《php常見數(shù)據(jù)庫(kù)操作技巧匯總》
希望本文所述對(duì)大家PHP程序設(shè)計(jì)有所幫助。
- PHP排序二叉樹基本功能實(shí)現(xiàn)方法示例
- PHP實(shí)現(xiàn)二叉樹深度優(yōu)先遍歷(前序、中序、后序)和廣度優(yōu)先遍歷(層次)實(shí)例詳解
- PHP實(shí)現(xiàn)從上往下打印二叉樹的方法
- PHP獲取二叉樹鏡像的方法
- PHP實(shí)現(xiàn)按之字形順序打印二叉樹的方法
- PHP基于非遞歸算法實(shí)現(xiàn)先序、中序及后序遍歷二叉樹操作示例
- PHP實(shí)現(xiàn)判斷二叉樹是否對(duì)稱的方法
- PHP實(shí)現(xiàn)繪制二叉樹圖形顯示功能詳解【包括二叉搜索樹、平衡樹及紅黑樹】
- php實(shí)現(xiàn)二叉樹中和為某一值的路徑方法
相關(guān)文章
學(xué)習(xí)php設(shè)計(jì)模式 php實(shí)現(xiàn)策略模式(strategy)
這篇文章主要介紹了php設(shè)計(jì)模式中的適配器模式,使用php實(shí)現(xiàn)適配器模式,感興趣的小伙伴們可以參考一下2015-12-12
php關(guān)聯(lián)數(shù)組快速排序的方法
這篇文章主要介紹了php關(guān)聯(lián)數(shù)組快速排序的方法,涉及php數(shù)組排序的相關(guān)技巧,非常具有實(shí)用價(jià)值,需要的朋友可以參考下2015-04-04
PHP 緩存實(shí)現(xiàn)代碼及詳細(xì)注釋
PHP緩存實(shí)現(xiàn),實(shí)現(xiàn)了apc和文件緩存,繼承Cache_Abstract即可實(shí)現(xiàn)調(diào)用第三方的緩存工具。參考shindig的緩存類和apc。2010-05-05
php簡(jiǎn)單實(shí)現(xiàn)短網(wǎng)址(短鏈)還原的方法(測(cè)試可用)
這篇文章主要介紹了php簡(jiǎn)單實(shí)現(xiàn)短網(wǎng)址還原的方法,以腳本之家短網(wǎng)址http://t.cn/heEHwk為例介紹了php還原短網(wǎng)址的實(shí)現(xiàn)技巧,非常簡(jiǎn)單實(shí)用,需要的朋友可以參考下2016-05-05

