focus/tree/tree.go

52 lines
1.4 KiB
Go
Raw Normal View History

2019-07-28 18:18:22 +00:00
package tree
2020-03-18 08:27:34 +00:00
// IBSTreeKey Compare函数可以自定义所以key不一定value, 可以是value结构体中一个属性
2019-07-28 18:18:22 +00: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 08:27:34 +00:00
Get(value interface{}) (interface{}, bool)
2019-07-28 18:18:22 +00:00
Put(value interface{})
Traversal(every func(v interface{}) bool, traversalMethod ...interface{})
}
2020-03-17 09:58:08 +00:00
2020-03-18 08:27:34 +00: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 09:58:08 +00: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{})
}