夕阳是如此的美丽。太阳改变了颜色,火红火红的,没有了中午的那份狂躁与炽热,从远处向它看去,斜晖洒在脸上,脸便立即变成了红褐色,感觉就像是一个慈祥的老人深情的摸着你的头,亲切而又温暖。
树(Tree)在数据结构还是很重要的,这里表示二叉树用括号表示法表示。先写一个二叉树节点类:
// 二叉树节点
class BTNode {
public $data;
public $lchild = NULL;
public $rchild = NULL;
public function __construct($data) {
$this->data = $data;
}
}
然后构造二叉树:
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;
}
}
}
这里写上一个打印二叉树的函数(中序遍历):
function PrintBTNode($node)
{
if($node != NULL) {
PrintBTNode($node->lchild);
echo $node->data;
PrintBTNode($node->rchild);
}
}
运行结果:
输入一个字符串
"A(B(C,D),G(F))"
以上就是PHP构造二叉树算法示例。如果能重来,还要遇见遇见过的人,还要去经历经历过的事,我不要这世界变得多好,我只想在再次遇见的时候,能够更加珍惜。更多关于PHP构造二叉树算法示例请关注haodaima.com其它相关文章!




