PHP实现的两叉树遍历算法的一个实例

PHP实现的两叉树遍历算法的一个实例
本文给出了一个用PHP实现的两叉树遍历算法的实例,供大家参考,如下:

今天使用PHP遍历两叉树

如图所示,创建了两叉叉树。
PHP代码如下所示:
< PHP
类结{
公共价值;
公共child_left美元;
公共child_right美元;
}
最后类遍历{
/ /序:访问根结点,然后遍历左子树,右子树遍历最后;当在子树遍历,还需要根节点的遍历,然后访问右子树遍历左子树,最后
公共静态函数序($根){
堆栈=数组();
array_push(合栈,$根);
而(!空($堆栈){
center_node美元= array_pop($堆栈);
echo $ center_node ->价值。;
第一个右边子树节点堆栈,确保左子树节点先出栈
如果($ center_node -> child_right!= null)array_push(合栈,center_node美元-> child_right);
如果($ center_node -> child_left!= null)array_push(合栈,center_node美元-> child_left);
}
}
顺序遍历:首先遍历左子树,然后访问根节点,最后遍历右子树;在左子树遍历中,仍然遍历左子树,然后访问根节点,遍历右子树。
公共静态函数midorder($根){
堆栈=数组();
center_node美元= $根;
而(!空(合栈)| | center_node美元!= NULL){
而(center_node美元!= NULL){
array_push(合栈,center_node美元);
center_node美元=美元center_node -> child_left;
}
center_node美元= array_pop($堆栈);
echo $ center_node ->价值。;
center_node美元=美元center_node -> child_right;
}
}
/ /后序遍历:先序遍历的左子树,然后遍历右子树,最后访问根结点;同样,当左、右子树遍历左子树的遍历,然后遍历右子树,最后访问根节点
公共静态函数后缀次序($根){
push_stack美元=阵();
visit_stack美元=阵();
array_push(push_stack美元,$根);
而(!空(美元push_stack)){
center_node = array_pop美元(美元push_stack);
array_push(visit_stack美元,美元center_node);
左子树节点首先在 / / $ pushstack堆栈,以确保visitstack美元第一栈
如果($ center_node -> child_left!= null)array_push(push_stack美元,美元center_node -> child_left);
如果($ center_node -> child_right!= null)array_push(push_stack美元,美元center_node -> child_right);
}
而(!空(美元visit_stack)){
center_node = array_pop美元(美元visit_stack);
echo $ center_node ->价值。;
}
}
}
创建两个叉树
$ =新节点();
$ =新节点();
$ =新节点();
$ =新节点();
$ =新节点();
$ =新节点();
$ G =新的节点();
$ =新节点();
$ =新节点();
美元->价值= A;
$ B ->价值= B;
$ C ->价值= C;
$ =;
$ E ->价值= e;
a ->价值= F;
$ G ->价值= G;
$ H ->价值= H;
$ i >值=i;
美元-> child_left = $;
美元-> child_right = $ C;
$ B -> child_left = $;
$ B -> child_right = $ G;
$ C -> child_left = $ E;
$ C -> child_right = $;
美元D -> child_left = $ H;
美元D -> child_right = $我;
/ /先序遍历
前序遍历::(a); / / B D H的结果是:一个I G C E F
回声';
在顺序遍历中
遍历::midorder(合一); / / D I B的结果是:H G E C F
回声';
在遍历之后
遍历::后缀次序(美元); / /我D G结果:H B E F C

关于PHP相关内容的更多读者感兴趣的读者可以看到特别站:PHP数据结构和算法教程

希望本文能对PHP程序设计有所帮助。
免责声明:本网信息来自于互联网,目的在于传递更多信息,并不代表本网赞同其观点。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,并请自行核实相关内容。本站不承担此类作品侵权行为的直接责任及连带责任。如若本网有任何内容侵犯您的权益,请及时联系我们,本站将会在24小时内处理完毕。
相关文章
返回顶部