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

2025-05-27 0 20

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

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

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

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

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38
<?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);

?>

运行结果:

?

1
86537421

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

原文链接:http://blog.csdn.net/jingbing082619/article/details/47373147

收藏 (0) 打赏

感谢您的支持,我会继续努力的!

打开微信/支付宝扫一扫,即可进行扫码打赏哦,分享从这里开始,精彩与您同在
点赞 (0)

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。

快网idc优惠网 建站教程 PHP根据树的前序遍历和中序遍历构造树并输出后序遍历的方法 https://www.kuaiidc.com/71874.html

相关文章

发表评论
暂无评论