遍歷二叉樹,這個相對比較複雜。
二叉樹的便利,主要有兩種,一種是廣度優先遍歷,一種是深度優先遍歷。
什麼是廣度優先遍歷?就是根節點進入,水平一行一行的便利。
什麼是深度優先遍歷呢?就是根節點進入,然後按照乙個固定的規律,一直向下走,乙個方向的子樹遍歷之後再遍歷另乙個方向的子樹。
深度優先遍歷,主要有三種順序遍歷:先序(先輸出根節點),中序(第二個輸出根節點),後序(最後輸出根節點)。
直接上**吧。
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 而對於樹上的每乙個節點,...