PHP根據(jù)樹(shù)的前序遍歷和中序遍歷構(gòu)造樹(shù)并輸出后序遍歷的方法
本文實(shí)例講述了PHP根據(jù)樹(shù)的前序遍歷和中序遍歷構(gòu)造樹(shù)并輸出后序遍歷的方法。分享給大家供大家參考,具體如下:
先來(lái)看看前序遍歷、中序遍歷與后序遍歷原理圖:

根據(jù)樹(shù)的前序遍歷和中序遍歷構(gòu)造樹(shù)并輸出后序遍歷代碼如下:
<?php
class BinaryTreeNode{
public $m_value;
public $m_left;
public $m_right;
}
function ConstructCore($preorder,$inorder){
if(count($preorder)!=count($inorder) || count($preorder)==0 || count($inorder)==0)
return null;
$headNode=new BinaryTreeNode;
$headNode->m_value=$preorder[0];
if(count($preorder)==1){
$headNode->m_left=null;
$headNode->m_right=null;
return $headNode;
}
array_shift($preorder);
$pos=array_search($headNode->m_value,$inorder);
$leftin=array_slice($inorder,0,$pos);
$rightin=array_slice($inorder,$pos+1);
$leftpre=array_slice($preorder,0,$pos);
$rightpre=array_slice($preorder,$pos);
$headNode->m_left=ConstructCore($leftpre,$leftin);
$headNode->m_right=ConstructCore($rightpre,$rightin);
return $headNode;
}
$pre=array(1,2,4,7,3,5,6,8);
$in=array(4,7,2,1,5,3,8,6);
$tree=ConstructCore($pre,$in);
function tail($tree){
if($tree->m_right!=null)
echo tail($tree->m_right);
if($tree->m_left!=null)
echo tail($tree->m_left);
echo $tree->m_value;
}
tail($tree);
?>
運(yùn)行結(jié)果:
86537421
更多關(guān)于PHP相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《PHP數(shù)據(jù)結(jié)構(gòu)與算法教程》、《php程序設(shè)計(jì)算法總結(jié)》、《php字符串(string)用法總結(jié)》、《PHP數(shù)組(Array)操作技巧大全》、《PHP常用遍歷算法與技巧總結(jié)》及《PHP數(shù)學(xué)運(yùn)算技巧總結(jié)》
希望本文所述對(duì)大家PHP程序設(shè)計(jì)有所幫助。
- php遍歷樹(shù)的常用方法匯總
- PHP實(shí)現(xiàn)二叉樹(shù)的深度優(yōu)先與廣度優(yōu)先遍歷方法
- php通過(guò)前序遍歷樹(shù)實(shí)現(xiàn)無(wú)需遞歸的無(wú)限極分類
- php FLEA中二叉樹(shù)數(shù)組的遍歷輸出
- PHP實(shí)現(xiàn)的線索二叉樹(shù)及二叉樹(shù)遍歷方法詳解
- php實(shí)現(xiàn)的二叉樹(shù)遍歷算法示例
- PHP Class&Object -- PHP 自排序二叉樹(shù)的深入解析
- PHP構(gòu)造二叉樹(shù)算法示例
- PHP完全二叉樹(shù)定義與實(shí)現(xiàn)方法示例
相關(guān)文章
PHP實(shí)現(xiàn)PDO操作mysql存儲(chǔ)過(guò)程示例
這篇文章主要介紹了PHP實(shí)現(xiàn)PDO操作mysql存儲(chǔ)過(guò)程,結(jié)合具體實(shí)例形式分析了php使用pdo操作mysql存儲(chǔ)過(guò)程實(shí)現(xiàn)用戶注冊(cè)功能相關(guān)技巧,需要的朋友可以參考下2019-02-02
利用PHP實(shí)現(xiàn)開(kāi)心消消樂(lè)的算法示例
開(kāi)心消消樂(lè)應(yīng)該對(duì)大家來(lái)說(shuō)都不陌生吧,下面這篇文章主要給大家介紹了關(guān)于如何利用PHP實(shí)現(xiàn)開(kāi)心消消樂(lè)算法的相關(guān)資料,文中將需求和示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧。2017-10-10
phpstudy無(wú)法啟動(dòng)MySQL服務(wù)的解決方法
個(gè)人比較懶,所以想到用phpstudy這個(gè)軟件進(jìn)行控制,但這個(gè)時(shí)候問(wèn)題出現(xiàn)了:在下載phpstudy后想要啟動(dòng)MySQL服務(wù),但是總是無(wú)法啟動(dòng),所以本文給大家介紹了如何解決phpstudy無(wú)法啟動(dòng)MySQL服務(wù)的問(wèn)題,需要的朋友可以參考下2024-06-06
PHP命名空間namespace及use的簡(jiǎn)單用法分析
這篇文章主要介紹了PHP命名空間namespace及use的簡(jiǎn)單用法,結(jié)合實(shí)例形式分析了php命名空間的功能、使用方法及相關(guān)操作注意事項(xiàng),需要的朋友可以參考下2018-08-08

