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基本語法入門教程》、《php面向?qū)ο蟪绦蛟O(shè)計(jì)入門教程》、《php字符串(string)用法總結(jié)》、《php+mysql數(shù)據(jù)庫操作入門教程》及《php常見數(shù)據(jù)庫操作技巧匯總》
希望本文所述對大家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)判斷二叉樹是否對稱的方法
- PHP實(shí)現(xiàn)繪制二叉樹圖形顯示功能詳解【包括二叉搜索樹、平衡樹及紅黑樹】
- php實(shí)現(xiàn)二叉樹中和為某一值的路徑方法
相關(guān)文章
PHP利用PHPMailer實(shí)現(xiàn)郵件發(fā)送功能
phpMailer是一個(gè)非常強(qiáng)大的php發(fā)送郵件類,可以設(shè)定發(fā)送郵件地址、回復(fù)地址、郵件主題、html網(wǎng)頁,上傳附件,并且使用起來非常方便。本文將利用它實(shí)現(xiàn)郵件發(fā)送功能,需要的可以參考一下2022-03-03apache+codeigniter 通過.htcaccess做動態(tài)二級域名解析
今天將服務(wù)器php版本升到了5.4.4,然后將之前的一個(gè)項(xiàng)目改用apache,動態(tài)二級轉(zhuǎn)向用.htcaccess實(shí)現(xiàn)了動態(tài)二級域名解析,共享一下2012-07-07discuz authcode 經(jīng)典php加密解密函數(shù)解析
康盛的 authcode 函數(shù)可以說對中國的PHP界作出了重大貢獻(xiàn)。包括康盛自己的產(chǎn)品,以及大部分中國使用PHP的公司都用這個(gè)函數(shù)進(jìn)行加密,authcode 是使用異或運(yùn)算進(jìn)行加密和解密。2010-02-02php通過array_merge()函數(shù)合并兩個(gè)數(shù)組的方法
這篇文章主要介紹了php通過array_merge()函數(shù)合并兩個(gè)數(shù)組的方法,實(shí)例分析了php中array_merge()函數(shù)合并數(shù)組的使用技巧,需要的朋友可以參考下2015-03-03Linux下安裝Memcached服務(wù)器和客戶端與PHP使用示例
這篇文章主要介紹了Linux下安裝Memcached服務(wù)器和客戶端與PHP使用,結(jié)合實(shí)例形式分析了Linux環(huán)境下的Memcached服務(wù)器和客戶端安裝命令、注意事項(xiàng)及php相關(guān)使用技巧,需要的朋友可以參考下2019-04-04PHP面向?qū)ο髮W(xué)習(xí)筆記之一 基礎(chǔ)概念
PHP面向?qū)ο髮W(xué)習(xí)筆記之一 基礎(chǔ)概念,想要學(xué)習(xí)PHP面向?qū)ο缶幊痰呐笥芽梢詤⒖枷?/div> 2012-10-10mayfish 數(shù)據(jù)入庫驗(yàn)證代碼
mayfish 可以靈活的自定義將要執(zhí)行寫入的數(shù)據(jù)內(nèi)容的校驗(yàn)規(guī)則,以減少開發(fā)人員手動對每一個(gè)字段的數(shù)據(jù)進(jìn)行校驗(yàn)的麻煩。2010-04-04最新評論