溫馨提示×

實現二叉樹遍歷的PHP遞歸函數

PHP
小樊
101
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
亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女