php实现的二叉树遍历算法示例
本文实例讲述了服务器端编程语言(专业超文本预处理器的缩写)实现的二叉树遍历算法。分享给大家供大家参考,具体如下:
今天使用服务器端编程语言(专业超文本预处理器的缩写)来实现二叉树的遍历
创建的二叉树如下图所示
服务器端编程语言(专业超文本预处理器的缩写)代码如下所示:
?phpclass Node { public $ value public $ child _ left public $ child _ right }最终类遍历{ //前序遍历:先访问根节点,再遍历左子树,最后遍历右子树;并且在遍历左右子树时,仍需先遍历根节点,然后访问左子树,最后遍历右子树公共静态函数preOrder($ root){ $ stack=array();array_push($stack,$ root);while(!空($ stack)){ $ center _ node=array _ pop($ stack);echo $center_node-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);} } //中序遍历:先遍历左子树、然后访问根节点,最后遍历右子树;并且在遍历左右子树的时候。仍然是先遍历左子树,然后访问根节点,最后遍历右子树公共静态函数midOrder($ root){ $ stack=array();$ center _ node=$ rootwhile(!空($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;} } //后序遍历:先遍历左子树,然后遍历右子树,最后访问根节点;同样,在遍历左右子树的时候同样要先遍历左子树,然后遍历右子树,最后访问根节点公共静态函数Endor($ root){ $ push _ stack=array();$ visit _ stack=array();array_push($push_stack,$ root);while(!空($ 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=新节点();$b=新节点();$c=新节点();$d=新节点();$e=新节点();$f=新节点();$ g=new Node();$h=新节点();$i=新节点();一美元值=' A$ B-值=' B$ C-值=' C$ D-值=' D $ E-值=' E$ F-值=' F$ G-值=' G$ H-值=' 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;//前序遍历麦角新碱:预购(美元);//结果是:A B D H I G C E Fecho ' br/';//中序遍历麦角菌目(:3360美元);//结果是:H D I B G A E C Fecho ' br/';//后序遍历遍历:支持者(美元);//结果是:美国联邦航空局更多关于服务器端编程语言(专业超文本预处理器的缩写)相关内容感兴趣的读者可查看本站专题: 《PHP数据结构与算法教程》 、 《PHP基本语法入门教程》 、 《php面向对象程序设计入门教程》 、 《php字符串(string)用法总结》 、 《php+mysql数据库操作入门教程》 及《php常见数据库操作技巧汇总》
希望本文所述对大家服务器端编程语言(专业超文本预处理器的缩写)程序设计有所帮助。
版权声明:php实现的二叉树遍历算法示例是由宝哥软件园云端程序自动收集整理而来。如果本文侵犯了你的权益,请联系本站底部QQ或者邮箱删除。