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