温馨提示×

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

PHP
小樊
82
2024-04-26 20:01:50
栏目: 编程语言

下面是一个实现二叉树遍历的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类来表示二叉树节点,并编写相应的遍历函数即可。您可以根据需要自定义二叉树的结构和节点数据。

0