PHP入门书籍推荐(今天俺要教大家用php苟造二插树算法)

feifei123 发布于 2025-02-25 阅读(6)

树(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))"收工,今天的学习咱们到此结束

亲爱的读者们,感谢您花时间阅读本文。如果您对本文有任何疑问或建议,请随时联系我。我非常乐意与您交流。

标签:  节点 本文 在这里 数据结构 这是我 

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。