《PHP編程:PHP構(gòu)造二叉樹算法示例》要點(diǎn):
本文介紹了PHP編程:PHP構(gòu)造二叉樹算法示例,希望對(duì)您有用。如果有疑問,可以聯(lián)系我們。
樹(Tree)在數(shù)據(jù)結(jié)構(gòu)還是很重要的,這里表示二叉樹用括號(hào)表示法表示.先寫一個(gè)二叉樹節(jié)點(diǎn)類:PHP應(yīng)用
// 二叉樹節(jié)點(diǎn) class BTNode { public $data; public $lchild = NULL; public $rchild = NULL; public function __construct($data) { $this->data = $data; } }
然后構(gòu)造二叉樹:PHP應(yīng)用
function CreateBTNode(&$root,string $str) { $strArr = str_split($str); $stack = []; $p = NULL; // 指針 $top = -1; $k = $j = 0; $root = NULL; foreach ($strArr as $ch) { switch ($ch) { case '(': $top++; array_push($stack, $p); $k = 1; break; case ')': array_pop($stack); break; case ',': $k = 2; break; default: $p = new BTNode($ch); if($root == NULL) { $root = $p; } else { switch ($k) { case 1: end($stack)->lchild = $p; break; case 2: end($stack)->rchild = $p; break; } } break; } } }
這里寫上一個(gè)打印二叉樹的函數(shù)(中序遍歷):PHP應(yīng)用
function PrintBTNode($node) { if($node != NULL) { PrintBTNode($node->lchild); echo $node->data; PrintBTNode($node->rchild); } }
運(yùn)行結(jié)果:
PHP應(yīng)用
輸入一個(gè)字符串
"A(B(C,D),G(F))"PHP應(yīng)用
PHP應(yīng)用
以上就是本文的全部內(nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持維易PHP.PHP應(yīng)用
轉(zhuǎn)載請(qǐng)注明本頁網(wǎng)址:
http://www.snjht.com/jiaocheng/587.html