PHP根据树的前序遍历和中序遍历构造树并输出后序遍历 PHP根据树的前序遍历和中序遍历构造树并输出后序遍历的方法

软件发布|下载排行|最新软件

当前位置:首页IT学院IT技术

PHP根据树的前序遍历和中序遍历构造树并输出后序遍历 PHP根据树的前序遍历和中序遍历构造树并输出后序遍历的方法

幻世2012   2021-03-28 我要评论
想了解PHP根据树的前序遍历和中序遍历构造树并输出后序遍历的方法的相关内容吗,幻世2012在本文为您仔细讲解PHP根据树的前序遍历和中序遍历构造树并输出后序遍历的相关知识和一些Code实例,欢迎阅读和指正,我们先划重点:PHP,树,前序遍历,中序遍历,构造树,输出,后序遍历,下面大家一起来学习吧。

本文实例讲述了PHP根据树的前序遍历和中序遍历构造树并输出后序遍历的方法。分享给大家供大家参考,具体如下:

先来看看前序遍历、中序遍历与后序遍历原理图:

根据树的前序遍历和中序遍历构造树并输出后序遍历代码如下:

<?php
class BinaryTreeNode{
  public $m_value;
  public $m_left;
  public $m_right;
}
function ConstructCore($preorder,$inorder){
  if(count($preorder)!=count($inorder) || count($preorder)==0 || count($inorder)==0)
  return null;
  $headNode=new BinaryTreeNode;
  $headNode->m_value=$preorder[0];
  if(count($preorder)==1){
    $headNode->m_left=null;
    $headNode->m_right=null;
    return $headNode;
  }
  array_shift($preorder);
  $pos=array_search($headNode->m_value,$inorder);
  $leftin=array_slice($inorder,0,$pos);
  $rightin=array_slice($inorder,$pos+1);
  $leftpre=array_slice($preorder,0,$pos);
  $rightpre=array_slice($preorder,$pos);
  $headNode->m_left=ConstructCore($leftpre,$leftin);
  $headNode->m_right=ConstructCore($rightpre,$rightin);
  return $headNode;
}
$pre=array(1,2,4,7,3,5,6,8);
$in=array(4,7,2,1,5,3,8,6);
$tree=ConstructCore($pre,$in);
function tail($tree){
  if($tree->m_right!=null)
  echo tail($tree->m_right);
  if($tree->m_left!=null)
  echo tail($tree->m_left);
    echo $tree->m_value;
}
tail($tree);
?>

运行结果:

86537421

希望本文所述对大家PHP程序设计有所帮助。

Copyright 2022 版权所有 软件发布 访问手机版

声明:所有软件和文章来自软件开发商或者作者 如有异议 请与本站联系 联系我们