php實現的二叉樹遍歷演算法示例

2022-10-06 08:09:09 字數 1467 閱讀 8590

今天使用php來實現二叉樹的遍歷

建立的二叉樹如下圖所示

php**如下所示:

<?php class node

final class ergodic

} //中序遍歷:先遍歷左子樹、然後訪問根節點,最後遍歷右子樹;並且在遍歷左右子樹的時候。仍然是先遍歷左子樹,然後訪問根節點,最後遍歷右子樹

public static function midorder($root)

$center_node = array_pop($stack);

echo $center_node->value . ' ';

$center_node = www.cppcns.com$center_node->child_ri程式設計客棧ght;

}} //後序遍歷:先遍歷左子樹,然後遍歷右子樹,最後訪問根節點;同樣,在遍歷左右子樹的時候同樣要先遍歷左子樹,然後遍歷右子樹,最後訪問根節點

public static function endorder($root)

while (!empty($visit_stack))

}}//建立二叉樹

$a = new node();

$b = new node();

$c = new node();

$d = new node();

$e = new node();

$f = new node();

$g = new node();

$h = new node();

$i = new node();

$a->value = 'a';

$b->value = 'b';

$c->value = 'c';

$d->value = 'd';

$e->value = 'e';

$f->value = 'f';

$g->value = 'g';

$h->value = 'h';

$i->value = 'i';

$a->child_left = $b;

$a->child_right = $c;

$b->child_left = $d;

$b->child_right = $g;

$c->child_left = $e;

$c->child_right = $f;

$d->child_left = $h;

$d->child_right = $i;

//前序遍歷

ergodic::preorder($a); //結果是:a b d h i g c e f

echo '程式設計客棧

';//中序遍歷

ergodic::midorder($a); //結果是: h d i b g a e c f

echo '

';//後序遍歷

ergodic::endorder($a); //結果是: h i d g b e f c a

二叉樹遍歷演算法實現

二叉樹的三種常見遍歷方式 先根遍歷 中根遍歷 後根遍歷。二叉樹節點結構體如下 struct node 根節點結構體 定義三個遍歷函式 void pre order node tree 先根遍歷 void in order node tree 中根遍歷 void post order node tre...

PHP構造二叉樹演算法示例

樹 tree 在資料結構還是很重要的,這裡表示二叉樹用括號表示法表示。先寫乙個二叉樹節點類 二叉樹節點 class btnode 然後構造二叉樹 程式設計客棧 function createbtnode root,string str else break 這裡寫上乙個列印二叉樹的函式 中序遍歷 f...

php之二叉樹,php如何實現的二叉樹遍歷 示例

php如何實現的二叉樹遍歷 示例 建立的二叉樹如下圖所示 php 如下所示 class node public value public child left public child right final class ergodic 前序遍歷 先訪問根節點,再遍歷左子樹,最後遍歷右子樹 並且在遍...