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

PHP Class&Object -- 解析PHP實現二叉樹

二叉樹及其變體是數據結構家族里的重要組成部分。最為鏈表的一種變體,二叉樹最適合處理需要一特定次序快速組織和檢索的數據。
復制代碼 代碼如下:
<?php
// Define a class to implement a binary tree
class Binary_Tree_Node {
    // Define the variable to hold our data:
    public $data;
    // And a variable to hold the left and right objects:
    public $left;
    public $right;

    // A constructor method that allows for data to be passed in
    public function __construct($d = NULL) {
        $this->data = $d;
    }

    // Traverse the tree, left to right, in pre-order, returning an array
    // Preorder means that each node's value preceeds its children.
    public function traversePreorder() {
        // Prep some variables.
        $l = array();
        $r = array();
        // Read in the left and right children appropriately traversed:
        if ($this->left) { $l = $this->left->traversePreorder(); }
        if ($this->right) { $r = $this->right->traversePreorder(); }

        // Return a merged array of the current value, left, and right:
        return array_merge(array($this->data), $l, $r);
    }
    // Traverse the tree, left to right, in postorder, returning an array
    // Postorder means that each node's value follows its children.
    public function traversePostorder() {
        // Prep some variables.
        $l = array();
        $r = array();
        // Read in the left and right children appropriately traversed:
        if ($this->left) { $l = $this->left->traversePostorder(); }
        if ($this->right) { $r = $this->right->traversePostorder(); }

        // Return a merged array of the current value, left, and right:
        return array_merge($l, $r, array($this->data));
    }
    // Traverse the tree, left to right, in-order, returning an array.
    // In-order means that values are ordered as left children, then the
    //  node value, then the right children.
    public function traverseInorder() {
        // Prep some variables.
        $l = array();
        $r = array();
        // Read in the left and right children appropriately traversed:
        if ($this->left) { $l = $this->left->traverseInorder(); }
        if ($this->right) { $r = $this->right->traverseInorder(); }

        // Return a merged array of the current value, left, and right:
        return array_merge($l, array($this->data), $r);
    }
}
// Let's create a binary tree that will equal the following:    3
//                                                             / /     
//                                                            h   9     
//                                                               / /    
// Create the tree:                                             6   a   
$tree = new Binary_Tree_Node(3);
$tree->left = new Binary_Tree_Node('h');
$tree->right = new Binary_Tree_Node(9);
$tree->right->left = new Binary_Tree_Node(6);
$tree->right->right = new Binary_Tree_Node('a');
// Now traverse this tree in all possible orders and display the results:
// Pre-order: 3, h, 9, 6, a
echo '<p>', implode(', ', $tree->traversePreorder()), '</p>';
// Post-order: h, 9, 6, a, 3
echo '<p>', implode(', ', $tree->traversePostorder()), '</p>';
// In-order: h, 3, 6, 9, a
echo '<p>', implode(', ', $tree->traverseInorder()), '</p>';
?>

php技術PHP Class&amp;amp;Object -- 解析PHP實現二叉樹,轉載需保留來源!

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

主站蜘蛛池模板: 亚洲精品一区国产欧美 | 花蝴蝶高清影视视频在线播放 | 暖暖的高清视频在线观看免费中文 | 西施打开双腿下面好紧 | 国产亚洲精品免费视频 | 97人视频国产在线观看 | 久久精品国产亚洲AV久五月天 | 99久久精品国产一区二区三区 | 99九九99九九九视频精品 | 好满射太多了装不下了视频 | 人妻熟妇乱又伦精品视频中文字幕 | jealousvue成熟40岁| 又爽又黄又粗又大免费视频 | 青柠在线观看视频在线 | 91看片淫黄大片.在线天堂 | 好男人在线观看免费视频WWW | 香蕉59tv视频 | 二级毛片免费观看全程 | 97精品国产高清在线看入口 | 国产亚洲精品在线视频 | 羽月希被黑人吃奶dasd585 | 亚州AV人片一区二区三区99久 | 中文日产无乱码AV在线观 | 亚洲qingse中文字幕久久 | 全黄H全肉细节文NP 全黄h全肉细节全文 | 国产互换后人妻的疯狂VIDEO | 91久久夜色精品 | 日韩精品一区二区亚洲AV观看 | 九九热最新视频 | 日韩性xxx| 2018高清国产一区二区三区 | 99国产精品久久人妻无码 | 蜜桃狠狠色伊人亚洲综合网站 | 亚洲精品蜜夜内射 | 欧美乱妇15p图 | 亚洲高清国产品国语在线观看 | 国产精品JK白丝AV网站 | 亚洲精品乱码久久久久久直播 | 国产成人精品视频播放 | 丰满少妇67194视频 | 一个人免费完整在线观看影院 |