php實現先序 中序 後序遍歷二叉樹

2022-08-02 20:36:12 字數 1425 閱讀 5177

二叉樹是每個節點最多有兩個子樹的樹結構。通常子樹被稱作「左子樹」(left subtree)和「右子樹」(right subtree)。二叉樹常被用於實現二叉查詢樹和二叉堆

先序遍歷 根節點 ---> 左子樹 ---> 右子樹

8function preorder($root)17

if($center_node->left!=null)20

}21}22

//中序遍歷,左子樹---> 根節點 ---> 右子樹

23function inorder($root)31

32$center_node = array_pop($stack

);33

echo

$center_node->value . " ";

3435

$center_node = $center_node->right;36}

37}38//

後序遍歷,左子樹 ---> 右子樹 ---> 根節點

39function tailorder($root)49

if($center_node->right!=null)52

}5354while(!empty($outstack

))5859}

60$a=new

node();

61$b=new

node();

62$c=new

node();

63$d=new

node();

64$e=new

node();

65$f=new

node();

66$a->value='a';

67$b->value='b';

68$c->value='c';

69$d->value='d';

70$e->value='e';

71$f->value='f';

72$a->left=$b;73

$a->right=$c;74

$b->left=$d;75

$c->left=$e;76

$c->right=$f

;77 preorder($a);//

a b d c e f

78echo '';

79 inorder($a);//

d b a e c f

80echo '';

81 tailorder($a);//

d b e f c a

結果:a b d c e f

d b a e c f

d b e f c a

二叉樹先序 中序 後序遍歷

題目 用遞迴和非遞迴方式,分別按照二叉樹先序 中序和後序列印所有的節點。我們約定 先序遍歷順序為根 左 右 中序遍歷順序為左 根 右 後序遍歷順序為左 右 根。遞迴實現 遞迴遍歷二叉樹 先序 public void preorderrecur node head system.out.println...

二叉樹先序遍歷 中序遍歷 後序遍歷

輸入二叉樹的先序遍歷序列和中序遍歷序列,輸出該二叉樹的後序遍歷序列。非建二叉樹版本 include includeusing namespace std string preord,inord void rebuild int preleft,int preright,int inleft,int ...

二叉樹先序遍歷 後序遍歷 中序遍歷

從根部 a 開始,然後開始遍歷左子樹,直接找到 b 檢視 b 有沒有左子樹,有 d,再檢視 d 有沒有子樹,沒有,d 已經是葉子,所以第二個是 d。倒回去,取中 b,第三個數是 b。檢視 b 有沒有右子樹,有 e 檢視 e 有沒有子樹,有 g 左 h 右 所有後面三個數是 egh 先查左子樹,存在繼...