点击(此处)折叠或打开

  1. class Node {
  2.     public $left = null;
  3.     public $right = null;
  4.     public $data = '';
  5.     public function __construct($data)
  6.     {
  7.         $this->data = $data;
  8.     }
  9. }

点击(此处)折叠或打开

  1. public function actionTree() {
  2.         //根节点
  3.         $root = new Node('10');
  4.         $b = new Node('6');
  5.         $c = new Node('11');
  6.         $d = new Node('4');
  7.         $e = new Node('7');
  8.         $f = new Node('13');

  9.         $root->left = $b;
  10.         $root->right = $c;

  11.         $b->left = $d;
  12.         $b->right = $e;
  13.         $c->right = $f;

  14.         $this->preOrder($root);
  15.         $this->inOrder($root);
  16.         $this->postOrder($root);
  17.     }
  18.     //前序遍历 根 左 右
  19.     private function preOrder($tree){
  20.         if($tree === null) {
  21.             return;
  22.         }
  23.         var_dump($tree->data);
  24.         $this->preOrder($tree->left);
  25.         $this->preOrder($tree->right);
  26.     }
  27.     //左 根 右
  28.     private function inOrder($tree) {
  29.         if($tree === null) {
  30.             return;
  31.         }
  32.         $this->inOrder($tree->left);
  33.         var_dump($tree->data);
  34.         $this->inOrder($tree->right);
  35.     }
  36.     //右 根 左
  37.     private function postOrder($tree) {
  38.         if($tree === null) {
  39.             return;
  40.         }
  41.         $this->postOrder($tree->right);
  42.         var_dump($tree->data);
  43.         $this->postOrder($tree->left);
  44.     }


12-16 18:35
查看更多