~telemachus/algorithms

ref: 7efe7ef5bf2ecd1d8f8111e31064af0296325e03 algorithms/bst_example_test.go -rw-r--r-- 1.1 KiB
7efe7ef5Peter Aronoff Add Insert and Walk functions 10 months ago
                                                                                
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
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
package algorithms_test

import (
	"fmt"

	"git.sr.ht/~telemachus/algorithms"
)

func ExampleInOrderWalk() {
	t := algorithms.NewBST()
	t.Insert(15)
	t.Insert(6)
	t.Insert(18)
	t.Insert(3)
	t.Insert(2)
	t.Insert(4)
	t.Insert(7)
	t.Insert(13)
	t.Insert(9)
	t.Insert(17)
	t.Insert(20)

	show := func(i int) {
		fmt.Printf("%d\n", i)
	}

	t.InOrderWalk(show)
	// Output:
	// 2
	// 3
	// 4
	// 6
	// 7
	// 9
	// 13
	// 15
	// 17
	// 18
	// 20
}

func ExamplePreOrderWalk() {
	t := algorithms.NewBST()
	t.Insert(15)
	t.Insert(6)
	t.Insert(18)
	t.Insert(3)
	t.Insert(2)
	t.Insert(4)
	t.Insert(7)
	t.Insert(13)
	t.Insert(9)
	t.Insert(17)
	t.Insert(20)

	show := func(i int) {
		fmt.Printf("%d\n", i)
	}

	t.PreOrderWalk(show)
	// Output:
	// 15
	// 6
	// 3
	// 2
	// 4
	// 7
	// 13
	// 9
	// 18
	// 17
	// 20
}

func ExamplePostOrderWalk() {
	t := algorithms.NewBST()
	t.Insert(15)
	t.Insert(6)
	t.Insert(18)
	t.Insert(3)
	t.Insert(2)
	t.Insert(4)
	t.Insert(7)
	t.Insert(13)
	t.Insert(9)
	t.Insert(17)
	t.Insert(20)

	show := func(i int) {
		fmt.Printf("%d\n", i)
	}

	t.PostOrderWalk(show)
	// Output:
	// 2
	// 4
	// 3
	// 9
	// 13
	// 7
	// 6
	// 17
	// 20
	// 18
	// 15
}