600字范文,内容丰富有趣,生活中的好帮手!
600字范文 > php实现的二叉树遍历算法示例代码

php实现的二叉树遍历算法示例代码

时间:2022-05-21 11:45:32

相关推荐

php实现的二叉树遍历算法示例代码

后端开发|php教程

php,代码,示例

后端开发-php教程今天使用php来实现二叉树的遍历

苹果相机源码,vscode c 开发配置,ubuntu 老毛,tomcat支持的并发,cookie反反爬虫,php bool 输出,ppc和seo哪个值得买,cms网站后台源码,自适应ep模板lzw

创建的二叉树下图例

php搞怪源码,vscode的ctl d,ubuntu退出系统,tomcat源码太庞大,红爬虫图片,php 登录后跳转,外贸seo电子邮件推广,.net免费网站模板源代码,xenon 使用模板lzw

建筑人才 源码,ubuntu只显示grub,rvest爬虫案例教程,PHP调用其他PHP数组,金华seo培训lzw

php代码如下所示:

value . ;//先把右子树节点入栈,以确保左子树节点先出栈if($center_node->child_right != null) array_push($stack, $center_node->child_right);if($center_node->child_left != null) array_push($stack, $center_node->child_left); } } //中序遍历:先遍历左子树、然后访问根节点,最后遍历右子树;并且在遍历左右子树的时候。仍然是先遍历左子树,然后访问根节点,最后遍历右子树 public static function midOrder($root){ $stack = array(); $center_node = $root; while (!empty($stack) || $center_node != null) {while ($center_node != null) { array_push($stack, $center_node); $center_node = $center_node->child_left;}$center_node = array_pop($stack);echo $center_node->value . ;$center_node = $center_node->child_right; } } //后序遍历:先遍历左子树,然后遍历右子树,最后访问根节点;同样,在遍历左右子树的时候同样要先遍历左子树,然后遍历右子树,最后访问根节点 public static function endOrder($root){ $push_stack = array(); $visit_stack = array(); array_push($push_stack, $root); while (!empty($push_stack)) {$center_node = array_pop($push_stack);array_push($visit_stack, $center_node);//左子树节点先入$pushstack的栈,确保在$visitstack中先出栈if ($center_node->child_left != null) array_push($push_stack, $center_node->child_left);if ($center_node->child_right != null) array_push($push_stack, $center_node->child_right); } while (!empty($visit_stack)) {$center_node = array_pop($visit_stack);echo $center_node->value . ; } }}//创建二叉树$a = new Node();$b = new Node();$c = new Node();$d = new Node();$e = new Node();$f = new Node();$g = new Node();$h = new Node();$i = new Node();$a->value = A;$b->value = B;$c->value = C;$d->value = D;$e->value = E;$f->value = F;$g->value = G;$h->value = H;$i->value = I;$a->child_left = $b;$a->child_right = $c;$b->child_left = $d;$b->child_right = $g;$c->child_left = $e;$c->child_right = $f;$d->child_left = $h;$d->child_right = $i;//前序遍历Ergodic::preOrder($a); //结果是:A B D H I G C E Fecho

;//中序遍历Ergodic::midOrder($a); //结果是: H D I B G A E C Fecho

;//后序遍历Ergodic::endOrder($a); //结果是: H I D G B E F C A

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。