focus/tree/tree.go

52 lines
1.4 KiB
Go
Raw Normal View History

2019-07-29 02:18:22 +08:00
package tree
2020-03-18 16:27:34 +08:00
// IBSTreeKey Compare函数可以自定义所以key不一定value, 可以是value结构体中一个属性
2019-07-29 02:18:22 +08:00
type IBSTreeKey interface {
String() string
Size() int
Remove(key interface{}) (interface{}, bool)
Clear()
// Values 返回先序遍历的值
Values() []interface{}
Get(key interface{}) (interface{}, bool)
Put(key, value interface{})
Traversal(every func(k, v interface{}) bool, traversalMethod ...interface{})
}
// IBSTree
type IBSTree interface {
String() string
Size() int
Remove(key interface{}) (interface{}, bool)
Clear()
// Values 返回先序遍历的值
Values() []interface{}
2020-03-18 16:27:34 +08:00
Get(value interface{}) (interface{}, bool)
2019-07-29 02:18:22 +08:00
Put(value interface{})
Traversal(every func(v interface{}) bool, traversalMethod ...interface{})
}
2020-03-17 17:58:08 +08:00
2020-03-18 16:27:34 +08:00
type IBSTreeDup interface {
String() string
Size() int
Remove(key interface{}) (interface{}, bool)
Clear()
// Values 返回先序遍历的值
Values() []interface{}
Get(value interface{}) (interface{}, bool)
Put(value interface{}) bool
Traversal(every func(v interface{}) bool, traversalMethod ...interface{})
}
2020-03-17 17:58:08 +08:00
type IBSTreeDupKey interface {
String() string
Size() int
Remove(key interface{}) (interface{}, bool)
Clear()
// Values 返回先序遍历的值
Values() []interface{}
Get(key interface{}) (interface{}, bool)
Put(key, value interface{}) bool
Traversal(every func(k, v interface{}) bool, traversalMethod ...interface{})
}