国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > PHP > 正文

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

2020-03-22 19:45:30
字體:
來源:轉載
供稿:網友
二叉樹及其變體是數據結構家族里的重要組成部分。最為鏈表的一種變體,二叉樹最適合處理需要一特定次序快速組織和檢索的數據。
復制代碼 代碼如下:
?php
// Define a html' target='_blank'>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教程

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

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 融水| 固原市| 南康市| 和龙市| 维西| 新河县| 七台河市| 霍林郭勒市| 洪洞县| 浏阳市| 鄂尔多斯市| 腾冲县| 喀什市| 自治县| 荣昌县| 应用必备| 安泽县| 蓝田县| 钟山县| 寿阳县| 浪卡子县| 沅陵县| 青冈县| 商南县| 彭州市| 西藏| 墨江| 古田县| 丹凤县| 阳原县| 寻乌县| 马龙县| 崇明县| 读书| 尉犁县| 德江县| 雷山县| 甘孜县| 中方县| 泾源县| 南和县|