# 前序-中序-后序
现有树:
A
B C
D E F G
1
2
3
2
3
前序遍历: A B D E C F G 中序遍历: D B E A F C G 后序遍历: D E B F G C A
// 创建树
function Node(value, left, right) {
this.value = value
this.left = left
this.right = right
}
const G = new Node('G', null, null)
const F = new Node('F', null, null)
const E = new Node('E', null, null)
const D = new Node('D', null, null)
const C = new Node('C', F, G)
const B = new Node('B', D, E)
const A = new Node('A', B, C)
// 前序遍历
function treeFront(node) {
console.log(node.value)
if (node.left) treeFront(node.left)
if (node.right) treeFront(node.right)
}
treeFront(A)
// 中序遍历
function treeMiddle(node) {
if (node.left) treeMiddle(node.left)
console.log(node.value)
if (node.right) treeMiddle(node.right)
}
treeMiddle(A)
// 后序遍历
function treeEnd(node) {
if (node.left) treeEnd(node.left)
if (node.right) treeEnd(node.right)
console.log(node.value)
}
treeEnd(A)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37