天天躁日日躁狠狠躁AV麻豆-天天躁人人躁人人躁狂躁-天天澡夜夜澡人人澡-天天影视香色欲综合网-国产成人女人在线视频观看-国产成人女人视频在线观看

PHP Class&Object -- PHP 自排序二叉樹的深入解析

在節點之間再應用一些排序邏輯,二叉樹就能提供出色的組織方式。對于每個節點,都讓滿足所有特定條件的元素都位于左節點及其子節點。在插入新元素時,我們需要從樹的第一個節 點(根節點)開始,判斷它屬于哪一側的節點,然后沿著這一側找到恰當的位置,類似地,在讀取數據時,只需要使用按序遍歷方法來遍歷二叉樹。
復制代碼 代碼如下:
<?php
ob_start();
// Here we need to include the binary tree class
Class Binary_Tree_Node() {
   // You can find the details at
}
ob_end_clean();
// Define a class to implement self sorting binary tree
class Sorting_Tree {
    // Define the variable to hold our tree:
    public $tree;
    // We need a method that will allow for inserts that automatically place
    // themselves in the proper order in the tree
    public function insert($val) {
        // Handle the first case:
        if (!(isset($this->tree))) {
            $this->tree = new Binary_Tree_Node($val);
        } else {
            // In all other cases:
            // Start a pointer that looks at the current tree top:
            $pointer = $this->tree;
            // Iteratively search the tree for the right place:
            for(;;) {
                // If this value is less than, or equal to the current data:
                if ($val <= $pointer->data) {
                    // We are looking to the left ... If the child exists:
                    if ($pointer->left) {
                        // Traverse deeper:
                        $pointer = $pointer->left;
                    } else {
                        // Found the new spot: insert the new element here:
                        $pointer->left = new Binary_Tree_Node($val);
                        break;
                    }
                } else {
                    // We are looking to the right ... If the child exists:
                    if ($pointer->right) {
                        // Traverse deeper:
                        $pointer = $pointer->right;
                    } else {
                        // Found the new spot: insert the new element here:
                        $pointer->right = new Binary_Tree_Node($val);
                        break;
                    }
                }
            }
        }
    }

    // Now create a method to return the sorted values of this tree.
    // All it entails is using the in-order traversal, which will now
    // give us the proper sorted order.
    public function returnSorted() {
        return $this->tree->traverseInorder();
    }
}
// Declare a new sorting tree:
$sort_as_you_go = new Sorting_Tree();
// Let's randomly create 20 numbers, inserting them as we go:
for ($i = 0; $i < 20; $i++) {
    $sort_as_you_go->insert(rand(1,100));
}
// Now echo the tree out, using in-order traversal, and it will be sorted:
// Example: 1, 2, 11, 18, 22, 26, 32, 32, 34, 43, 46, 47, 47, 53, 60, 71,
//   75, 84, 86, 90
echo '<p>', implode(', ', $sort_as_you_go->returnSorted()), '</p>';
?>

php技術PHP Class&amp;amp;Object -- PHP 自排序二叉樹的深入解析,轉載需保留來源!

鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。

主站蜘蛛池模板: 最新亚洲人成网站在线影院 | 成人午夜剧场 | 国产在线观看91精品 | 日本久久精品毛片一区随边看 | 十8禁用B站在线看漫画 | 日本阿v片在线播放免费 | 免费在线观看a视频 | 色www精品视频在线观看 | 国产午夜电影在线观看不卡 | 海角社区在线视频播放观看 | 女的把腿张开男的往里面插 | 亚洲福利区| 一二三四在线视频社区8 | 中文在线中文资源 | 国产欧洲野花A级 | 亚洲国产精品嫩草影院永久 | 国产在线亚洲精品观看不卡 | 乱子伦在线观看中文字幕 | 十二月综合缴缴情 | 99欧美精品 | 俄罗斯人与动ZOZ0 | 国产福利视频第一导航 | 久久只有这里有精品4 | 国产极品白嫩超清在线观看 | AV一区AV久久AV无码 | 幸福草电视剧演员表介绍 | 成人啪啪色婷婷久色社区 | www色小姐 | 久啪久久全部视频在线 | 色综合精品无码一区二区三区 | 久久99精品国产免费观看 | 色欲精品国产AV久久久 | 色噜噜色啪在线视频 | 亚洲综合日韩中文字幕v在线 | 午夜不卡久久精品无码免费 | 中文中幕无码亚洲在线 | 美女张开腿让男生桶动态图 | china年轻小帅脸直播飞机 | 99热这里只有精品 | AV97最新无码喷水叫床 | 亚洲中文字幕永久在线全国 |