实现二叉树遍历的PHP递归函数

avatar
作者
猴君
阅读量:0

下面是一个实现二叉树遍历的PHP递归函数,包括前序遍历、中序遍历和后序遍历:

class Node {     public $data;     public $leftChild;     public $rightChild;      public function __construct($data) {         $this->data = $data;         $this->leftChild = null;         $this->rightChild = null;     } }  function preOrderTraversal($node) {     if ($node != null) {         echo $node->data . " ";         preOrderTraversal($node->leftChild);         preOrderTraversal($node->rightChild);     } }  function inOrderTraversal($node) {     if ($node != null) {         inOrderTraversal($node->leftChild);         echo $node->data . " ";         inOrderTraversal($node->rightChild);     } }  function postOrderTraversal($node) {     if ($node != null) {         postOrderTraversal($node->leftChild);         postOrderTraversal($node->rightChild);         echo $node->data . " ";     } }  // 创建一个二叉树 $root = new Node(1); $root->leftChild = new Node(2); $root->rightChild = new Node(3); $root->leftChild->leftChild = new Node(4); $root->leftChild->rightChild = new Node(5);  // 前序遍历 echo "Preorder traversal: "; preOrderTraversal($root); echo "n";  // 中序遍历 echo "Inorder traversal: "; inOrderTraversal($root); echo "n";  // 后序遍历 echo "Postorder traversal: "; postOrderTraversal($root); echo "n"; 

以上代码演示了如何实现二叉树的前序遍历、中序遍历和后序遍历。您只需定义一个Node类来表示二叉树节点,并编写相应的遍历函数即可。您可以根据需要自定义二叉树的结构和节点数据。