中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

php二叉樹如何實現插入操作

PHP
小樊
82
2024-10-17 19:30:04
欄目: 編程語言

在PHP中,實現二叉樹插入操作首先需要創建一個二叉樹類(BinaryTree),然后在該類中實現插入方法(insert)。以下是一個簡單的二叉樹插入操作實現:

class TreeNode {
    public $value;
    public $left;
    public $right;

    public function __construct($value) {
        $this->value = $value;
        $this->left = null;
        $this->right = null;
    }
}

class BinaryTree {
    public $root;

    public function __construct() {
        $this->root = null;
    }

    public function insert($value) {
        $newNode = new TreeNode($value);
        if ($this->root === null) {
            $this->root = $newNode;
        } else {
            $this->insertNode($this->root, $newNode);
        }
    }

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

// 使用示例
$binaryTree = new BinaryTree();
$binaryTree->insert(50);
$binaryTree->insert(30);
$binaryTree->insert(20);
$binaryTree->insert(40);
$binaryTree->insert(70);
$binaryTree->insert(60);
$binaryTree->insert(80);

在這個例子中,我們首先創建了一個TreeNode類,用于表示二叉樹的節點。每個節點包含一個值(value),以及指向左子節點(left)和右子節點(right)的指針。

接下來,我們創建了一個BinaryTree類,用于表示整個二叉樹。這個類包含一個指向根節點(root)的指針,以及一個用于插入新節點的insert方法。insert方法會創建一個新的TreeNode實例,然后調用insertNode方法將其插入到正確的位置。

insertNode方法是一個遞歸方法,用于將新節點插入到二叉搜索樹中。它首先比較新節點的值與當前節點的值,如果新節點的值較小,則將其插入到當前節點的左子樹中;如果新節點的值較大,則將其插入到當前節點的右子樹中。這個過程會一直遞歸進行,直到找到正確的插入位置。

0
涟源市| 郁南县| 厦门市| 姚安县| 玉门市| 五华县| 岳西县| 扎鲁特旗| 吕梁市| 弥渡县| 拜泉县| 汉沽区| 呈贡县| 西乌珠穆沁旗| 台江县| 静海县| 德庆县| 鄂州市| 灵丘县| 淮阳县| 贵南县| 措美县| 金阳县| 精河县| 奉贤区| 两当县| 会同县| 永宁县| 甘洛县| 青田县| 全南县| 青州市| 田东县| 长丰县| 平果县| 阿鲁科尔沁旗| 西平县| 永靖县| 枣强县| 溆浦县| 措勤县|