php二叉树能实现排序吗

avatar
作者
猴君
阅读量:0

PHP中的二叉树可以实现排序。您可以创建一个自定义的二叉搜索树(BST),它允许您快速插入、删除和查找节点。在插入或删除节点时,树会自动重新排列以保持排序顺序。

以下是一个简单的PHP二叉搜索树实现,包括插入和遍历功能:

class Node {     public $value;     public $left;     public $right;      public function __construct($value) {         $this->value = $value;         $this->left = null;         $this->right = null;     } }  class BinarySearchTree {     public $root;      public function __construct() {         $this->root = null;     }      public function insert($value) {         $node = new Node($value);         if ($this->root === null) {             $this->root = $node;         } else {             $this->insertNode($this->root, $node);         }     }      private function insertNode($node, $newNode) {         if ($newNode->value < $node->value) {             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 inOrderTraversal($node = null) {         if ($node === null) {             $node = $this->root;         }          if ($node !== null) {             $this->inOrderTraversal($node->left);             echo $node->value . " ";             $this->inOrderTraversal($node->right);         }     } }  $bst = new BinarySearchTree(); $values = [8, 3, 10, 1, 6, 14, 4, 7, 13];  foreach ($values as $value) {     $bst->insert($value); }  echo "In-order traversal of the BST: "; $bst->inOrderTraversal(); 

在这个例子中,我们创建了一个简单的二叉搜索树,并向其中插入了一些值。然后,我们使用中序遍历(左-根-右)打印出排序后的值。这将输出:In-order traversal of the BST: 1 3 4 6 7 8 10 13 14

广告一刻

为您即时展示最新活动产品广告消息,让您随时掌握产品活动新动态!