-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathbasic.go
121 lines (100 loc) · 1.7 KB
/
basic.go
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
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
// Package bst
// @Description: 二分搜索树通用定义
package bst
// Action 遍历的Action
type Action func(int, string)
type BST interface {
// IsEmpty 是否为空
IsEmpty() bool
// Size 大小
Size() int
// Get 获取值
Get(int) (string, error)
//
// Contains
// @Description: 是否包含
// @param int
// @return bool
//
Contains(int) bool
//
// Max
// @Description: 获取最大值
// @return int
// @return string
// @return error
//
Max() (int, string, error)
//
// Min
// @Description: 获取最小值
// @return int
// @return string
// @return error
//
Min() (int, string, error)
// Add
// @Description: 新增 k ,v
// @param int
// @param string
//
Add(int, string)
// Delete
// @Description: 删除值
// @param int
// @return bool
// @return error
//
Delete(int) (bool, error)
// IsBST 是否是二分搜索树
IsBST() bool
// Dfs
// @Description: 深度遍历
// @param Action
//
Dfs(Action)
//
// Bfs
// @Description:
// @param Action
//
Bfs(Action)
//
// PreOrder
// @Description: 前序排序
// @param Action
//
PreOrder(Action)
//
// InOrder
// @Description: 中序排序
// @param Action
//
InOrder(Action)
//
// PostOrder
// @Description: 后序排序
// @param Action
//
PostOrder(Action)
//
// IsBalanced
// @Description: 是否是平衡的
// @return bool
//
IsBalanced() bool
//
// SetDebug
// @Description: 设置debug打印
// @param debug
//
SetDebug(debug bool)
}
// TreeError 自定义tree异常
type TreeError string
func (treeError TreeError) Message() string {
return string(treeError)
}
func (treeError TreeError) Error() string {
return treeError.Message()
}