介绍
这篇文章将为大家详细讲解有关利用php怎么实现一个二叉树遍历算法,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。
创建的二叉树如下图所示
php代码如下所示:
& lt;及# 63;php {类节点 公共美元价值; 公共child_left美元; 公共child_right美元; } 最后遍历类{//前序遍历:先访问根节点,再遍历左子树,最后遍历右子树,并且在遍历左右子树时,仍需先遍历根节点,然后访问左子树,最后遍历右子树 公共静态函数预订(根美元){ 数组$堆栈=(); array_push(堆栈,根美元); 而(!空栈($)){ (center_node=最后一美元堆栈); 回声center_node→美元价值。& # 39;& # 39;;//先把右子树节点入栈,以确保左子树节点先出栈 如果($ 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=最后一美元堆栈); 回声center_node→美元价值。& # 39;& # 39;; center_node=center_node→美元child_right; } }//后序遍历:先遍历左子树,然后遍历右子树,最后访问根节点;同样,在遍历左右子树的时候同样要先遍历左子树,然后遍历右子树,最后访问根节点 公共静态函数endOrder(根美元){ 数组$ push_stack=(); 数组$ visit_stack=(); array_push (push_stack,根美元); 而(!空(push_stack美元)){ (center_node=最后一美元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=最后一美元visit_stack); 回声center_node→美元价值。& # 39;& # 39;; } } }//创建二叉树 一美元=新节点(); $ b=新节点(); $ c=新节点(); $ d=新节点(); $ e=新节点(); $ f=新节点(); $ g=新节点(); $ h=新节点(); $ i=新节点(); 一个→美元价值=https://www.yisu.com/zixun/' a '; $ b -> value=' b '; $ c -> value=' c '; $ d -> value=' d '; $ e ->价值=癳”; $ f -> value=' f '; $ g -> value=' g '; $ h -> value=' h '; $ i ->价值=拔摇? -> child_left=b美元; -> 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;//前序遍历 遍历:预订(美元);//结果是:B D H G F C E echo '
';//中序遍历 遍历:midOrder(美元);//结果是:H D G B E C F echo '
';//后序遍历 遍历:endOrder(美元);//结果是:H F I D G B E C
关于利用php怎么实现一个二叉树遍历算法就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看的到。