600字范文,内容丰富有趣,生活中的好帮手!
600字范文 > PHP基于非递归方式算法实现先序/中序/后序遍历二叉树操作

PHP基于非递归方式算法实现先序/中序/后序遍历二叉树操作

时间:2020-01-19 09:18:06

相关推荐

PHP基于非递归方式算法实现先序/中序/后序遍历二叉树操作

后端开发|php教程

php,实现,算法

后端开发-php教程

这篇文章主要介绍了关于PHP基于非递归方式算法实现先序/中序/后序遍历二叉树操作 ,有着一定的参考价值,现在分享给大家,有需要的朋友可以参考一下

html商城源码下载,vscode加入环境变量mac,ubuntu终止更新,tomcat 服务拒绝访问,小爬虫插件,php留言系统源码,seo行业越来越难做,橙色电影网站lzw

/** * PHP基于非递归方式算法实现先序/中序/后序遍历二叉树操作 *A * BC * D E FG * H * 先序遍历:先遍历根节点,然后遍历左节点,最后遍历右节点: ABDHECFG * 中序遍历:先遍历左子树,然后遍历根节点,最后遍历右子树: HDBEAFCG * 后序遍历:先遍历左子树,然后遍历右子树,最后遍历根节点: HDEBFGCA * *//*先序遍历:利用栈的先进后出特性,先访问根节点,再把右子树压入,再压入左子树.这样取出的时候是先取出左子树,最后取出右子树*/ function preOrder($root){ $stack = array(); array_push($stack,$root); while(!empty($stack)){ $center_node = array_pop($stack); echo $center_node->value;//根节点 if($center_node->right != null){ array_push($stack,$center_node->right);//压入右子树 } if($center_node->left != null){ array_push($stack,$center_node->left);//压入左子树 } } } /*中序遍历:需要从下向上遍历,所以先把左子树压入栈,然后逐个访问根节点和右子树*/ function inOrder($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->left;}$center_node = array_pop($stack);echo $center_node->value;$center_node = $center_node->right; } } /*后序遍历:先把根节点存起来,然后依次存储左子树和右子树,然后输出*/ function tailOrder($root){ $stack = array(); $outStack = array(); array_push($$stack, $root); while($empty($stack)){ $center_node = array_pop($stack); array_push($outStack,$center_node); if($center_node->right != null){ array_push($stack,$center_node->left); } } while($empty($outStack)){ echo $center_node->value; } }

相关推荐:

a5源码 棋牌源码,Ubuntu换源vim,tomcat监控有用吗,邮箱防爬虫,php基础怎么学习技术,seo oemlzw

PHP基于SPL实现的迭代器模式

更多模板 源码之家,ubuntu怎么用的,jq爬虫美女程序,ldap php 运行,seo ul lilzw

PHP基于phpqrcode类生成二维码的方法详解

PHP基于面向对象实现留言本功能

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