本文實(shí)例講述了PHP完全二叉樹(shù)定義與實(shí)現(xiàn)方法。分享給大家供大家參考,具體如下:
若設(shè)二叉樹(shù)的深度為h,除第 h 層外,其它各層 (1~h-1) 的結(jié)點(diǎn)數(shù)都達(dá)到最大個(gè)數(shù),第 h 層所有的結(jié)點(diǎn)都連續(xù)集中在最左邊,這就是完全二叉樹(shù)。
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常見(jiàn)數(shù)據(jù)庫(kù)操作技巧匯總》
希望本文所述對(duì)大家PHP程序設(shè)計(jì)有所幫助。
您可能感興趣的文章:- PHP排序二叉樹(shù)基本功能實(shí)現(xiàn)方法示例
- PHP實(shí)現(xiàn)二叉樹(shù)深度優(yōu)先遍歷(前序、中序、后序)和廣度優(yōu)先遍歷(層次)實(shí)例詳解
- PHP實(shí)現(xiàn)從上往下打印二叉樹(shù)的方法
- PHP獲取二叉樹(shù)鏡像的方法
- PHP實(shí)現(xiàn)按之字形順序打印二叉樹(shù)的方法
- PHP基于非遞歸算法實(shí)現(xiàn)先序、中序及后序遍歷二叉樹(shù)操作示例
- PHP實(shí)現(xiàn)判斷二叉樹(shù)是否對(duì)稱的方法
- PHP實(shí)現(xiàn)繪制二叉樹(shù)圖形顯示功能詳解【包括二叉搜索樹(shù)、平衡樹(shù)及紅黑樹(shù)】
- php實(shí)現(xiàn)二叉樹(shù)中和為某一值的路徑方法