gistfile1.txt $array = [5,2,9,3,10,13,2,1,20,26,18,62];$binaryTree = new BinaryTree();foreach($array as $value){$binaryTree-insert($value);}$binaryTree-inOrderTraverse(function($key){echo $key.'';});class Node{public $key = null;public $lef
$array = [5,2,9,3,10,13,2,1,20,26,18,62]; $binaryTree = new BinaryTree(); foreach($array as $value){ $binaryTree->insert($value); } $binaryTree->inOrderTraverse(function($key){echo $key.'';}); class Node{ public $key = null; public $left = null; public $right = null; public function __construct($key){ $this-> key = $key; } } class BinaryTree{ public $root = null; public function insert($key){ $newNode = new Node($key); if($this->root === null){ $this->root = $newNode; }else{ $this->insertNode($this->root,$newNode); } } private function insertNode($node, $newNode){ if($node->key < $newNode->key){ if($node->left === null){ $node->left = $newNode; }else{ $this->insertNode($node->left,$newNode); } }else{ if($node->right === null){ $node->right = $newNode; }else{ $this->insertNode($node->right, $newNode); } } } //排序取出数据 public function inOrderTraverse($callback){ $this->inOrderTraverseNode($this->root,$callback); } private function inOrderTraverseNode($node,$callback){ if($node !== null){ $this->inOrderTraverseNode($node->left,$callback); $callback($node->key); $this->inOrderTraverseNode($node->right,$callback); } } }