国产探花免费观看_亚洲丰满少妇自慰呻吟_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教程

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

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 盐山县| 阿荣旗| 莒南县| 葫芦岛市| 丰顺县| 武强县| 洛川县| 营山县| 德格县| 中西区| 娱乐| 鄱阳县| 陆河县| 弋阳县| 澜沧| 天全县| 双柏县| 雅江县| 昆山市| 峡江县| 长宁区| 永仁县| 柳河县| 比如县| 武安市| 烟台市| 渝中区| 五原县| 左权县| 炎陵县| 年辖:市辖区| 绍兴县| 龙门县| 江孜县| 长寿区| 大名县| 扎鲁特旗| 盐城市| 闻喜县| 鄂温| 柳林县|