本文实例讲述了PHP根据树的前序遍历和中序遍历构造树并输出后序遍历的方法。分享给大家供大家参考,具体如下:
先来看看前序遍历、中序遍历与后序遍历原理图:
rush:PHP;">
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,$pos);
$rightin=array_slice($inorder,$pos+1);
$leftpre=array_slice($preorder,$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,1,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);
?>
运行结果:
rush:PHP;">
86537421
更多关于PHP相关内容感兴趣的读者可查看本站专题:《》、《》、《》、《》、《》及《》
希望本文所述对大家PHP程序设计有所帮助。
原文地址:https://www.jb51.cc/php/16594.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。