PHP构建的两叉树算法实例

树(树)在数据结构中很重要,这表示两叉树用括号表示:


两个叉树节点
类BTnode {
公开数据;

公众左右美元= null;

公共rchild美元= null;

公共功能__construct($数据){
此数据;
}
}



然后建造两棵叉树。


函数的CreateBTNode($根,字符串str)
{
strarr美元= str_split($str);
$堆栈{ };
$ = NULL;
$顶部= 1;
$ = $ j = 0;
$ = null;
foreach(strarr美元美元,CH){
开关($ CH){
案例':
美元+;
array_push(合栈,P);
$ k=1;
打破;
案例':
array_pop($堆栈);
打破;
案例,:
$ k=2;
打破;
违约:
P =新的BTnode($ CH);
如果($根= = null){
$ root = $ P;
{人}
开关($ k){
案例1:
端(合栈)->左右= P;
打破;
案例2:
端(合栈)-> rchild = P;
打破;
}
}
打破;
}
}
}



这里是一个函数(在中间顺序遍历)中打印一个二叉树:


函数的PrintBTNode(元结)
{
如果($)节点!= NULL){
PrintBTNode($节点->左右);
回波$节点>数据;
PrintBTNode($节点-> rchild);
}
}



运行结果:



输入一个字符串

a(b(c,d),g(f))



以上是本文的全部内容,希望能对您有所帮助,希望大家多多支持。