您好,欢迎访问一九零五行业门户网

PHP实现构造二叉树算法的方法

本篇文章主要介绍php实现构造二叉树算法的方法,感兴趣的朋友参考下,希望对大家有所帮助。
树(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 构造二叉树算法示例代码
python实现的二叉树算法和kmp算法实例
php实现kmp算法
以上就是php实现构造二叉树算法的方法的详细内容。
其它类似信息

推荐信息