PHP 树的先序,中序,后序遍历

本文介绍了一种使用PHP实现的二叉树结构及其先序、中序和后序遍历方法。通过具体实例展示了如何创建二叉树并进行不同方式的遍历,输出了遍历结果。
 1 <?php
 2     #树节点
 3     class Node {
 4         public $lc = null;    #左孩子
 5         public $rc = null;    #右孩子
 6         public $val;
 7         
 8         public function __construct($val) {
 9             $this->val = $val;
10         }
11     }
12     
13     #先序遍历
14     function preTraverse(Node $root) {
15         echo $root->val . " ";
16         if($root->lc != null) preTraverse($root->lc);
17         if($root->rc != null) preTraverse($root->rc);
18     }
19     
20     #中序遍历
21     function inTraverse(Node $root) {
22         if($root->lc != null) inTraverse($root->lc);
23         echo $root->val . " ";
24         if($root->rc != null) inTraverse($root->rc);
25     }
26     
27     #后序遍历
28     function postTraverse(Node $root) {
29         if($root->lc != null) postTraverse($root->lc);
30         if($root->rc != null) postTraverse($root->rc);
31         echo $root->val . " ";
32     }
33     
34     $root = new Node(3);
35     $node1 = new Node(2);
36     $node2 = new Node(1);
37     $node3 = new Node(6);
38     $node4 = new Node(5);
39     $node5 = new Node(7);
40     
41     $root->lc = $node1;
42     $root->rc = $node3;
43     $node1->lc = $node2;
44     $node3->lc = $node4;
45     $node3->rc = $node5;
46     
47     preTraverse($root);
48     echo "<br>";
49     inTraverse($root);
50     echo "<br>";
51     postTraverse($root);
52 ?>

输出

3 2 1 6 5 7 
1 2 3 5 6 7 
1 2 5 7 6 3

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值