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

PHP代碼實現(xiàn)(暫時實現(xiàn)添加節(jié)點、層次遍歷節(jié)點,刪除節(jié)點后續(xù)更新)
<?php
class Node{
public $value;
public $leftNode;
public $rightNode;
}
/* 找到空節(jié)點 */
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é)點 */
function addNode($node, $value){
$emptyNode = findEmpytNode($node);
setNode($emptyNode, $value);
}
/* 設(shè)置節(jié)點 */
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基本語法入門教程》、《php面向?qū)ο蟪绦蛟O(shè)計入門教程》、《php字符串(string)用法總結(jié)》、《php+mysql數(shù)據(jù)庫操作入門教程》及《php常見數(shù)據(jù)庫操作技巧匯總》
希望本文所述對大家PHP程序設(shè)計有所幫助。
相關(guān)文章
PHP利用PHPMailer實現(xiàn)郵件發(fā)送功能
phpMailer是一個非常強大的php發(fā)送郵件類,可以設(shè)定發(fā)送郵件地址、回復(fù)地址、郵件主題、html網(wǎng)頁,上傳附件,并且使用起來非常方便。本文將利用它實現(xiàn)郵件發(fā)送功能,需要的可以參考一下2022-03-03
apache+codeigniter 通過.htcaccess做動態(tài)二級域名解析
今天將服務(wù)器php版本升到了5.4.4,然后將之前的一個項目改用apache,動態(tài)二級轉(zhuǎn)向用.htcaccess實現(xiàn)了動態(tài)二級域名解析,共享一下2012-07-07
discuz authcode 經(jīng)典php加密解密函數(shù)解析
康盛的 authcode 函數(shù)可以說對中國的PHP界作出了重大貢獻。包括康盛自己的產(chǎn)品,以及大部分中國使用PHP的公司都用這個函數(shù)進行加密,authcode 是使用異或運算進行加密和解密。2010-02-02
php通過array_merge()函數(shù)合并兩個數(shù)組的方法
這篇文章主要介紹了php通過array_merge()函數(shù)合并兩個數(shù)組的方法,實例分析了php中array_merge()函數(shù)合并數(shù)組的使用技巧,需要的朋友可以參考下2015-03-03
Linux下安裝Memcached服務(wù)器和客戶端與PHP使用示例
這篇文章主要介紹了Linux下安裝Memcached服務(wù)器和客戶端與PHP使用,結(jié)合實例形式分析了Linux環(huán)境下的Memcached服務(wù)器和客戶端安裝命令、注意事項及php相關(guān)使用技巧,需要的朋友可以參考下2019-04-04
PHP面向?qū)ο髮W(xué)習(xí)筆記之一 基礎(chǔ)概念
PHP面向?qū)ο髮W(xué)習(xí)筆記之一 基礎(chǔ)概念,想要學(xué)習(xí)PHP面向?qū)ο缶幊痰呐笥芽梢詤⒖枷?/div> 2012-10-10最新評論

