PHP遍歷二叉樹

2022-08-28 00:39:12 字數 1649 閱讀 1587

遍歷二叉樹,這個相對比較複雜。

二叉樹的便利,主要有兩種,一種是廣度優先遍歷,一種是深度優先遍歷。

什麼是廣度優先遍歷?就是根節點進入,水平一行一行的便利。

什麼是深度優先遍歷呢?就是根節點進入,然後按照乙個固定的規律,一直向下走,乙個方向的子樹遍歷之後再遍歷另乙個方向的子樹。

深度優先遍歷,主要有三種順序遍歷:先序(先輸出根節點),中序(第二個輸出根節點),後序(最後輸出根節點)。

直接上**吧。

1

class

node 67

$node1 = new

node();

8$node2 = new

node();

9$node3 = new

node();

10$node4 = new

node();

11$node5 = new

node();

12$node6 = new

node();

13$node7 = new

node();

14$node8 = new

node();

15$node9 = new

node();

1617

$node1->data = 1;

18$node2->data = 2;

19$node3->data = 3;

20$node4->data = 4;

21$node5->data = 5;

22$node6->data = 6;

23$node7->data = 7;

24$node8->data = 8;

25$node9->data = 9;

2627

$node1->left = $node2;28

$node1->right = $node3;29

$node2->left = $node4;30

$node2->right = $node5;31

$node3->left = $node6;32

$node3->right = $node7;33

$node4->left = $node8;34

$node4->right = $node9;

以上**,簡單建立乙個二叉樹,如下圖:

廣度優先遍歷

1

//二叉樹廣度優先遍歷

2function binary_tree1($node

) 15

return

$result;16

}1718print_r(binary_tree2($node1));

深度優先遍歷(先序)

1

//二叉樹深度優先遍歷(先序)

2function binary_tree2($node)3

14if ($cnode->left != null

) 17}18

return

$result;19

}2021print_r(binary_tree2($node1));

構建二叉樹 遍歷二叉樹

陣列法構建二叉樹 public class main public static void main string args 用陣列的方式構建二叉樹 public static void createbintree 把linkedlist集合轉成二叉樹的形式 for int j 0 j 最後乙個父節...

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

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

二叉樹遍歷

二叉樹的遍歷非常重要,但對已一棵比較複雜的樹,要寫出它的先 中 後序遍歷,往往不是那麼簡單,也很容易犯錯。這裡介紹一種比較直觀且不容易犯錯的方法。對於圖1所示的二叉樹,要寫出它的先 中 後序遍歷,往往很容易出錯。圖 1 其實,我們可以用圖2中的紅線描畫出二叉樹的輪廓。圖 2 而對於樹上的每乙個節點,...