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);
		}
	}
	
}
        
        