gtree
18 分钟阅读
原文:https://pkg.go.dev/github.com/gogf/gf/v2@v2.6.4/container/gtree
Package gtree provides concurrent-safe/unsafe tree containers.
软件包 gtree 提供了并发安全/不安全的树容器。
Some implements are from: https://github.com/emirpasic/gods
一些工具来自:https://github.com/emirpasic/gods
常量
This section is empty.
变量
This section is empty.
函数
This section is empty.
类型
type AVLTree
|
|
AVLTree holds elements of the AVL tree.
AVLTree 保存 AVL 树的元素。
func NewAVLTree
|
|
NewAVLTree instantiates an AVL tree with the custom key comparator. The parameter safe
is used to specify whether using tree in concurrent-safety, which is false in default.
NewAVLTree 使用自定义密钥比较器实例化 AVL 树。该参数 safe
用于指定是否在 concurrent-safety 中使用 tree,默认为 false。
Example
|
|
func NewAVLTreeFrom
|
|
NewAVLTreeFrom instantiates an AVL tree with the custom key comparator and data map. The parameter safe
is used to specify whether using tree in concurrent-safety, which is false in default.
NewAVLTreeFrom 使用自定义键比较器和数据映射实例化 AVL 树。该参数 safe
用于指定是否在 concurrent-safety 中使用 tree,默认为 false。
Example
|
|
(*AVLTree) Ceiling
|
|
Ceiling finds ceiling node of the input key, return the ceiling node or nil if no ceiling node is found. Second return parameter is true if ceiling was found, otherwise false.
ceiling 查找输入键的 ceiling 节点,返回 ceiling 节点,如果没有找到 ceiling 节点,则返回 nil。如果找到 ceiling,则第二个返回参数为 true,否则为 false。
Ceiling node is defined as the smallest node that is larger than or equal to the given node. A ceiling node may not be found, either because the tree is empty, or because all nodes in the tree is smaller than the given node.
天花板节点定义为大于或等于给定节点的最小节点。可能找不到天花板节点,因为树为空,或者树中的所有节点都小于给定节点。
Key should adhere to the comparator’s type assertion, otherwise method panics.
键应遵循比较器的类型断言,否则方法会崩溃。
Example
|
|
(*AVLTree) Clear
|
|
Clear removes all nodes from the tree.
清除将从树中删除所有节点。
Example
|
|
(*AVLTree) Clone
|
|
Clone returns a new tree with a copy of current tree.
克隆返回一个新树,其中包含当前树的副本。
Example
|
|
(*AVLTree) Contains
|
|
Contains checks whether key
exists in the tree.
包含检查树中是否 key
存在。
Example
|
|
(*AVLTree) Flip
|
|
Flip exchanges key-value of the tree to value-key. Note that you should guarantee the value is the same type as key, or else the comparator would panic.
Flip 将树的键值交换为值键。请注意,应保证该值与键的类型相同,否则比较器会崩溃。
If the type of value is different with key, you pass the new comparator
.
如果值的类型与键不同,则传递新的 comparator
.
Example
|
|
(*AVLTree) Floor
|
|
Floor Finds floor node of the input key, return the floor node or nil if no floor node is found. Second return parameter is true if floor was found, otherwise false.
Floor 查找输入键的 floor 节点,返回 floor 节点,如果没有找到 floor 节点,则返回 nil。如果找到 floor,则第二个返回参数为 true,否则为 false。
Floor node is defined as the largest node that is smaller than or equal to the given node. A floor node may not be found, either because the tree is empty, or because all nodes in the tree is larger than the given node.
地板节点定义为小于或等于给定节点的最大节点。可能找不到楼层节点,因为树为空,或者树中的所有节点都大于给定节点。
Key should adhere to the comparator’s type assertion, otherwise method panics.
键应遵循比较器的类型断言,否则方法会崩溃。
Example
|
|
(*AVLTree) Get
|
|
Get searches the node in the tree by key
and returns its value or nil if key is not found in tree.
Get 搜索树 key
中的节点,如果在树中找不到键,则返回其值或 nil。
Example
|
|
(*AVLTree) GetOrSet
|
|
GetOrSet returns the value by key, or sets value with given value
if it does not exist and then returns this value.
GetOrSet 按键返回值,如果值不存在,则使用 given value
设置值,然后返回此值。
Example
|
|
(*AVLTree) GetOrSetFunc
|
|
GetOrSetFunc returns the value by key, or sets value with returned value of callback function f
if it does not exist and then returns this value.
GetOrSetFunc 按键返回值,或者使用回调函数 f
的返回值设置值(如果不存在),然后返回此值。
Example
|
|
(*AVLTree) GetOrSetFuncLock
|
|
GetOrSetFuncLock returns the value by key, or sets value with returned value of callback function f
if it does not exist and then returns this value.
GetOrSetFuncLock 按键返回值,或者使用回调函数 f
的返回值设置值(如果不存在),然后返回此值。
GetOrSetFuncLock differs with GetOrSetFunc function is that it executes function f
with mutex.Lock of the hash map.
GetOrSetFuncLock 与 GetOrSetFunc 函数的不同之处在于它使用互斥锁执行函数 f
。哈希映射的锁定。
Example
|
|
(*AVLTree) GetVar
|
|
GetVar returns a gvar.Var with the value by given key
. The returned gvar.Var is un-concurrent safe.
GetVar 返回一个 gvar。Var 的值由 给定 key
。返回的 gvar。Var 是非并发安全的。
Example
|
|
(*AVLTree) GetVarOrSet
|
|
GetVarOrSet returns a gvar.Var with result from GetVarOrSet. The returned gvar.Var is un-concurrent safe.
GetVarOrSet 返回 gvar。具有 GetVarOrSet 结果的 Var。返回的 gvar。Var 是非并发安全的。
Example
|
|
(*AVLTree) GetVarOrSetFunc
|
|
GetVarOrSetFunc returns a gvar.Var with result from GetOrSetFunc. The returned gvar.Var is un-concurrent safe.
GetVarOrSetFunc 返回 gvar。具有 GetOrSetFunc 结果的 Var。返回的 gvar。Var 是非并发安全的。
Example
|
|
(*AVLTree) GetVarOrSetFuncLock
|
|
GetVarOrSetFuncLock returns a gvar.Var with result from GetOrSetFuncLock. The returned gvar.Var is un-concurrent safe.
GetVarOrSetFuncLock 返回 gvar。具有 GetOrSetFuncLock 结果的 Var。返回的 gvar。Var 是非并发安全的。
Example
|
|
(*AVLTree) IsEmpty
|
|
IsEmpty returns true if tree does not contain any nodes.
如果树不包含任何节点,则 IsEmpty 返回 true。
Example
|
|
(*AVLTree) Iterator
|
|
Iterator is alias of IteratorAsc.
Iterator 是 IteratorAsc 的别名。
Example
|
|
(*AVLTree) IteratorAsc
|
|
IteratorAsc iterates the tree readonly in ascending order with given callback function f
. If f
returns true, then it continues iterating; or false to stop.
IteratorAsc 使用给定的回调函数 f
按升序迭代树只读。如果 f
返回 true,则继续迭代;或 false 停止。
Example
|
|
(*AVLTree) IteratorAscFrom
|
|
IteratorAscFrom iterates the tree readonly in ascending order with given callback function f
. The parameter key
specifies the start entry for iterating. The match
specifies whether starting iterating if the key
is fully matched, or else using index searching iterating. If f
returns true, then it continues iterating; or false to stop.
IteratorAscFrom 使用给定的回调函数 f
按升序迭代树只读。该参数 key
指定用于迭代的开始条目。指定 match
在完全 key
匹配时是开始迭代,还是使用索引搜索迭代。如果 f
返回 true,则继续迭代;或 false 停止。
(*AVLTree) IteratorDesc
|
|
IteratorDesc iterates the tree readonly in descending order with given callback function f
. If f
returns true, then it continues iterating; or false to stop.
IteratorDesc 使用给定的回调函数 f
按降序只读迭代树。如果 f
返回 true,则继续迭代;或 false 停止。
Example
|
|
(*AVLTree) IteratorDescFrom
|
|
IteratorDescFrom iterates the tree readonly in descending order with given callback function f
. The parameter key
specifies the start entry for iterating. The match
specifies whether starting iterating if the key
is fully matched, or else using index searching iterating. If f
returns true, then it continues iterating; or false to stop.
IteratorDescFrom 使用给定的回调函数 f
按降序迭代树只读。该参数 key
指定用于迭代的开始条目。指定 match
在完全 key
匹配时是开始迭代,还是使用索引搜索迭代。如果 f
返回 true,则继续迭代;或 false 停止。
Example
|
|
(*AVLTree) IteratorFrom
|
|
IteratorFrom is alias of IteratorAscFrom.
IteratorFrom 是 IteratorAscFrom 的别名。
Example
|
|
(*AVLTree) Keys
|
|
Keys returns all keys in asc order.
Keys 按 asc 顺序返回所有键。
Example
|
|
(*AVLTree) Left
|
|
Left returns the minimum element of the AVL tree or nil if the tree is empty.
Left 返回 AVL 树的最小元素,如果树为空,则返回 nil。
Example
|
|
(*AVLTree) Map
|
|
Map returns all key-value items as map.
Map 以 map 的形式返回所有键值项。
Example
|
|
(*AVLTree) MapStrAny
|
|
MapStrAny returns all key-value items as map[string]interface{}.
MapStrAny 以 map[string]interface{} 的形式返回所有键值项。
Example
|
|
(AVLTree) MarshalJSON
|
|
MarshalJSON implements the interface MarshalJSON for json.Marshal.
MarshalJSON 实现 json 的接口 MarshalJSON。元帅。
Example
|
|
(*AVLTree) Print
|
|
Print prints the tree to stdout.
打印 将树打印到 stdout。
Example
|
|
(*AVLTree) Remove
|
|
Remove removes the node from the tree by key. Key should adhere to the comparator’s type assertion, otherwise method panics.
Remove 按键从树中删除节点。键应遵循比较器的类型断言,否则方法会崩溃。
Example
|
|
(*AVLTree) Removes
|
|
Removes batch deletes values of the tree by keys
.
删除 batch 删除树 keys
的值。
Example
|
|
(*AVLTree) Replace
|
|
Replace the data of the tree with given data
.
将树的数据替换为 给定 data
的 .
Example
|
|
(*AVLTree) Right
|
|
Right returns the maximum element of the AVL tree or nil if the tree is empty.
Right 返回 AVL 树的最大元素,如果树为空,则返回 nil。
Example
|
|
(*AVLTree) Search
|
|
Search searches the tree with given key
. Second return parameter found
is true if key was found, otherwise false.
搜索 使用给定 key
的树搜索 。如果找到键,则第二个返回参数 found
为 true,否则为 false。
Example
|
|
(*AVLTree) Set
|
|
Set inserts node into the tree.
将插入节点设置到树中。
Example
|
|
(*AVLTree) SetIfNotExist
|
|
SetIfNotExist sets value
to the map if the key
does not exist, and then returns true. It returns false if key
exists, and value
would be ignored.
如果 不存在 key
,则 SetIfNotExist 设置为 value
映射,然后返回 true。如果 key
存在,则返回 false,并将 value
被忽略。
Example
|
|
(*AVLTree) SetIfNotExistFunc
|
|
SetIfNotExistFunc sets value with return value of callback function f
, and then returns true. It returns false if key
exists, and value
would be ignored.
SetIfNotExistFunc 使用回调函数 f
的返回值设置值,然后返回 true。如果 key
存在,则返回 false,并将 value
被忽略。
Example
|
|
(*AVLTree) SetIfNotExistFuncLock
|
|
SetIfNotExistFuncLock sets value with return value of callback function f
, and then returns true. It returns false if key
exists, and value
would be ignored.
SetIfNotExistFuncLock 使用回调函数 f
的返回值设置值,然后返回 true。如果 key
存在,则返回 false,并将 value
被忽略。
SetIfNotExistFuncLock differs with SetIfNotExistFunc function is that it executes function f
with mutex.Lock of the hash map.
SetIfNotExistFuncLock 与 SetIfNotExistFunc 函数的不同之处在于它使用互斥锁执行函数 f
。哈希映射的锁定。
Example
|
|
(*AVLTree) Sets
|
|
Sets batch sets key-values to the tree.
将批处理设置树的键值。
Example
|
|
(*AVLTree) Size
|
|
Size returns number of nodes in the tree.
size 返回树中的节点数。
Example
|
|
(*AVLTree) String
|
|
String returns a string representation of container
String 返回容器的字符串表示形式
Example
|
|
(*AVLTree) Values
|
|
Values returns all values in asc order based on the key.
Values 根据键按 asc 顺序返回所有值。
Example
|
|
type AVLTreeNode
|
|
AVLTreeNode is a single element within the tree.
AVLTreeNode 是树中的单个元素。
(*AVLTreeNode) Next
|
|
Next returns the next element in an inorder walk of the AVL tree.
Next 返回 AVL 树的无序游历中的下一个元素。
(*AVLTreeNode) Prev
|
|
Prev returns the previous element in an inorder walk of the AVL tree.
Prev 返回 AVL 树的无序遍历中的前一个元素。
type BTree
|
|
BTree holds elements of the B-tree.
BTree 包含 B 树的元素。
func NewBTree
|
|
NewBTree instantiates a B-tree with m
(maximum number of children) and a custom key comparator. The parameter safe
is used to specify whether using tree in concurrent-safety, which is false in default. Note that the m
must be greater or equal than 3, or else it panics.
NewBTree 实例化具有 m
(最大子项数)和自定义键比较器的 B 树。该参数 safe
用于指定是否在 concurrent-safety 中使用 tree,默认为 false。请注意,必须 m
大于或等于 3,否则会出现恐慌。
Example
|
|
func NewBTreeFrom
|
|
NewBTreeFrom instantiates a B-tree with m
(maximum number of children), a custom key comparator and data map. The parameter safe
is used to specify whether using tree in concurrent-safety, which is false in default.
NewBTreeFrom 实例化具有 m
(最大子项数)、自定义键比较器和数据映射的 B 树。该参数 safe
用于指定是否在 concurrent-safety 中使用 tree,默认为 false。
Example
|
|
(*BTree) Clear
|
|
Clear removes all nodes from the tree.
清除将从树中删除所有节点。
Example
|
|
(*BTree) Clone
|
|
Clone returns a new tree with a copy of current tree.
克隆返回一个新树,其中包含当前树的副本。
Example
|
|
(*BTree) Contains
|
|
Contains checks whether key
exists in the tree.
包含检查树中是否 key
存在。
Example
|
|
(*BTree) Get
|
|
Get searches the node in the tree by key
and returns its value or nil if key is not found in tree.
Get 搜索树 key
中的节点,如果在树中找不到键,则返回其值或 nil。
Example
|
|
(*BTree) GetOrSet
|
|
GetOrSet returns the value by key, or sets value with given value
if it does not exist and then returns this value.
GetOrSet 按键返回值,如果值不存在,则使用 given value
设置值,然后返回此值。
Example
|
|
(*BTree) GetOrSetFunc
|
|
GetOrSetFunc returns the value by key, or sets value with returned value of callback function f
if it does not exist and then returns this value.
GetOrSetFunc 按键返回值,或者使用回调函数 f
的返回值设置值(如果不存在),然后返回此值。
Example
|
|
(*BTree) GetOrSetFuncLock
|
|
GetOrSetFuncLock returns the value by key, or sets value with returned value of callback function f
if it does not exist and then returns this value.
GetOrSetFuncLock 按键返回值,或者使用回调函数 f
的返回值设置值(如果不存在),然后返回此值。
GetOrSetFuncLock differs with GetOrSetFunc function is that it executes function f
with mutex.Lock of the hash map.
GetOrSetFuncLock 与 GetOrSetFunc 函数的不同之处在于它使用互斥锁执行函数 f
。哈希映射的锁定。
Example
|
|
(*BTree) GetVar
|
|
GetVar returns a gvar.Var with the value by given key
. The returned gvar.Var is un-concurrent safe.
GetVar 返回一个 gvar。Var 的值由 给定 key
。返回的 gvar。Var 是非并发安全的。
Example
|
|
(*BTree) GetVarOrSet
|
|
GetVarOrSet returns a gvar.Var with result from GetVarOrSet. The returned gvar.Var is un-concurrent safe.
GetVarOrSet 返回 gvar。具有 GetVarOrSet 结果的 Var。返回的 gvar。Var 是非并发安全的。
Example
|
|
(*BTree) GetVarOrSetFunc
|
|
GetVarOrSetFunc returns a gvar.Var with result from GetOrSetFunc. The returned gvar.Var is un-concurrent safe.
GetVarOrSetFunc 返回 gvar。具有 GetOrSetFunc 结果的 Var。返回的 gvar。Var 是非并发安全的。
Example
|
|
(*BTree) GetVarOrSetFuncLock
|
|
GetVarOrSetFuncLock returns a gvar.Var with result from GetOrSetFuncLock. The returned gvar.Var is un-concurrent safe.
GetVarOrSetFuncLock 返回 gvar。具有 GetOrSetFuncLock 结果的 Var。返回的 gvar。Var 是非并发安全的。
Example
|
|
(*BTree) Height
|
|
Height returns the height of the tree.
Height 返回树的高度。
Example
|
|
(*BTree) IsEmpty
|
|
IsEmpty returns true if tree does not contain any nodes
如果树不包含任何节点,则 IsEmpty 返回 true
Example
|
|
(*BTree) Iterator
|
|
Iterator is alias of IteratorAsc.
Iterator 是 IteratorAsc 的别名。
Example
|
|
(*BTree) IteratorAsc
|
|
IteratorAsc iterates the tree readonly in ascending order with given callback function f
. If f
returns true, then it continues iterating; or false to stop.
IteratorAsc 使用给定的回调函数 f
按升序迭代树只读。如果 f
返回 true,则继续迭代;或 false 停止。
Example
|
|
(*BTree) IteratorAscFrom
|
|
IteratorAscFrom iterates the tree readonly in ascending order with given callback function f
. The parameter key
specifies the start entry for iterating. The match
specifies whether starting iterating if the key
is fully matched, or else using index searching iterating. If f
returns true, then it continues iterating; or false to stop.
IteratorAscFrom 使用给定的回调函数 f
按升序迭代树只读。该参数 key
指定用于迭代的开始条目。指定 match
在完全 key
匹配时是开始迭代,还是使用索引搜索迭代。如果 f
返回 true,则继续迭代;或 false 停止。
(*BTree) IteratorDesc
|
|
IteratorDesc iterates the tree readonly in descending order with given callback function f
. If f
returns true, then it continues iterating; or false to stop.
IteratorDesc 使用给定的回调函数 f
按降序只读迭代树。如果 f
返回 true,则继续迭代;或 false 停止。
Example
|
|
(*BTree) IteratorDescFrom
|
|
IteratorDescFrom iterates the tree readonly in descending order with given callback function f
. The parameter key
specifies the start entry for iterating. The match
specifies whether starting iterating if the key
is fully matched, or else using index searching iterating. If f
returns true, then it continues iterating; or false to stop.
IteratorDescFrom 使用给定的回调函数 f
按降序迭代树只读。该参数 key
指定用于迭代的开始条目。指定 match
在完全 key
匹配时是开始迭代,还是使用索引搜索迭代。如果 f
返回 true,则继续迭代;或 false 停止。
Example
|
|
(*BTree) IteratorFrom
|
|
IteratorFrom is alias of IteratorAscFrom.
IteratorFrom 是 IteratorAscFrom 的别名。
Example
|
|
(*BTree) Keys
|
|
Keys returns all keys in asc order.
Keys 按 asc 顺序返回所有键。
Example
|
|
(*BTree) Left
|
|
Left returns the left-most (min) entry or nil if tree is empty.
Left 返回最左边的 (min) 条目,如果 tree 为空,则返回 nil。
Example
|
|
(*BTree) Map
|
|
Map returns all key-value items as map.
Map 以 map 的形式返回所有键值项。
Example
|
|
(*BTree) MapStrAny
|
|
MapStrAny returns all key-value items as map[string]interface{}.
MapStrAny 以 map[string]interface{} 的形式返回所有键值项。
Example
|
|
(BTree) MarshalJSON
|
|
MarshalJSON implements the interface MarshalJSON for json.Marshal.
MarshalJSON 实现 json 的接口 MarshalJSON。元帅。
Example
|
|
(*BTree) Print
|
|
Print prints the tree to stdout.
打印 将树打印到 stdout。
Example
|
|
(*BTree) Remove
|
|
Remove removes the node from the tree by key
.
Remove 通过 key
从树中删除节点。
Example
|
|
(*BTree) Removes
|
|
Removes batch deletes values of the tree by keys
.
删除 batch 删除树 keys
的值。
Example
|
|
(*BTree) Replace
|
|
Replace the data of the tree with given data
.
将树的数据替换为 给定 data
的 .
Example
|
|
(*BTree) Right
|
|
Right returns the right-most (max) entry or nil if tree is empty.
如果树为空,则 Right 返回最右边 (max) 的条目或 nil。
Example
|
|
(*BTree) Search
|
|
Search searches the tree with given key
. Second return parameter found
is true if key was found, otherwise false.
搜索 使用给定 key
的树搜索 。如果找到键,则第二个返回参数 found
为 true,否则为 false。
Example
|
|
(*BTree) Set
|
|
Set inserts key-value item into the tree.
Set 将键值项插入到树中。
Example
|
|
(*BTree) SetIfNotExist
|
|
SetIfNotExist sets value
to the map if the key
does not exist, and then returns true. It returns false if key
exists, and value
would be ignored.
如果 不存在 key
,则 SetIfNotExist 设置为 value
映射,然后返回 true。如果 key
存在,则返回 false,并将 value
被忽略。
Example
|
|
(*BTree) SetIfNotExistFunc
|
|
SetIfNotExistFunc sets value with return value of callback function f
, and then returns true. It returns false if key
exists, and value
would be ignored.
SetIfNotExistFunc 使用回调函数 f
的返回值设置值,然后返回 true。如果 key
存在,则返回 false,并将 value
被忽略。
Example
|
|
(*BTree) SetIfNotExistFuncLock
|
|
SetIfNotExistFuncLock sets value with return value of callback function f
, and then returns true. It returns false if key
exists, and value
would be ignored.
SetIfNotExistFuncLock 使用回调函数 f
的返回值设置值,然后返回 true。如果 key
存在,则返回 false,并将 value
被忽略。
SetIfNotExistFuncLock differs with SetIfNotExistFunc function is that it executes function f
with mutex.Lock of the hash map.
SetIfNotExistFuncLock 与 SetIfNotExistFunc 函数的不同之处在于它使用互斥锁执行函数 f
。哈希映射的锁定。
Example
|
|
(*BTree) Sets
|
|
Sets batch sets key-values to the tree.
将批处理设置树的键值。
Example
|
|
(*BTree) Size
|
|
Size returns number of nodes in the tree.
size 返回树中的节点数。
Example
|
|
(*BTree) String
|
|
String returns a string representation of container (for debugging purposes)
String 返回容器的字符串表示形式(用于调试目的)
Example
|
|
(*BTree) Values
|
|
Values returns all values in asc order based on the key.
Values 根据键按 asc 顺序返回所有值。
Example
|
|
type BTreeEntry
|
|
BTreeEntry represents the key-value pair contained within nodes.
BTreeEntry 表示节点中包含的键值对。
type BTreeNode
|
|
BTreeNode is a single element within the tree.
BTreeNode 是树中的单个元素。
type RedBlackTree
|
|
RedBlackTree holds elements of the red-black tree.
RedBlackTree 包含红黑树的元素。
func NewRedBlackTree
|
|
NewRedBlackTree instantiates a red-black tree with the custom key comparator. The parameter safe
is used to specify whether using tree in concurrent-safety, which is false in default.
NewRedBlackTree 使用自定义键比较器实例化红黑树。该参数 safe
用于指定是否在 concurrent-safety 中使用 tree,默认为 false。
Example
|
|
func NewRedBlackTreeFrom
|
|
NewRedBlackTreeFrom instantiates a red-black tree with the custom key comparator and data
map. The parameter safe
is used to specify whether using tree in concurrent-safety, which is false in default.
NewRedBlackTreeFrom 使用自定义键比较器和 data
映射实例化红黑树。该参数 safe
用于指定是否在 concurrent-safety 中使用 tree,默认为 false。
Example
|
|
(*RedBlackTree) Ceiling
|
|
Ceiling finds ceiling node of the input key, return the ceiling node or nil if no ceiling node is found. Second return parameter is true if ceiling was found, otherwise false.
ceiling 查找输入键的 ceiling 节点,返回 ceiling 节点,如果没有找到 ceiling 节点,则返回 nil。如果找到 ceiling,则第二个返回参数为 true,否则为 false。
Ceiling node is defined as the smallest node that its key is larger than or equal to the given key
. A ceiling node may not be found, either because the tree is empty, or because all nodes in the tree are smaller than the given node.
天花板节点定义为其键大于或等于给定 key
的最小节点。可能找不到天花板节点,因为树是空的,或者树中的所有节点都小于给定节点。
Example
|
|
(*RedBlackTree) Clear
|
|
Clear removes all nodes from the tree.
清除将从树中删除所有节点。
Example
|
|
(*RedBlackTree) Clone
|
|
Clone returns a new tree with a copy of current tree.
克隆返回一个新树,其中包含当前树的副本。
Example
|
|
(*RedBlackTree) Contains
|
|
Contains checks whether key
exists in the tree.
包含检查树中是否 key
存在。
Example
|
|
(*RedBlackTree) Flip
|
|
Flip exchanges key-value of the tree to value-key. Note that you should guarantee the value is the same type as key, or else the comparator would panic.
Flip 将树的键值交换为值键。请注意,应保证该值与键的类型相同,否则比较器会崩溃。
If the type of value is different with key, you pass the new comparator
.
如果值的类型与键不同,则传递新的 comparator
.
Example
|
|
(*RedBlackTree) Floor
|
|
Floor Finds floor node of the input key, return the floor node or nil if no floor node is found. Second return parameter is true if floor was found, otherwise false.
Floor 查找输入键的 floor 节点,返回 floor 节点,如果没有找到 floor 节点,则返回 nil。如果找到 floor,则第二个返回参数为 true,否则为 false。
Floor node is defined as the largest node that its key is smaller than or equal to the given key
. A floor node may not be found, either because the tree is empty, or because all nodes in the tree are larger than the given node.
Floor 节点定义为其键小于或等于给定 key
的最大节点。可能找不到楼层节点,因为树为空,或者树中的所有节点都大于给定节点。
Example
|
|
(*RedBlackTree) Get
|
|
Get searches the node in the tree by key
and returns its value or nil if key is not found in tree.
Get 搜索树 key
中的节点,如果在树中找不到键,则返回其值或 nil。
Example
|
|
(*RedBlackTree) GetOrSet
|
|
GetOrSet returns the value by key, or sets value with given value
if it does not exist and then returns this value.
GetOrSet 按键返回值,如果值不存在,则使用 given value
设置值,然后返回此值。
Example
|
|
(*RedBlackTree) GetOrSetFunc
|
|
GetOrSetFunc returns the value by key, or sets value with returned value of callback function f
if it does not exist and then returns this value.
GetOrSetFunc 按键返回值,或者使用回调函数 f
的返回值设置值(如果不存在),然后返回此值。
Example
|
|
(*RedBlackTree) GetOrSetFuncLock
|
|
GetOrSetFuncLock returns the value by key, or sets value with returned value of callback function f
if it does not exist and then returns this value.
GetOrSetFuncLock 按键返回值,或者使用回调函数 f
的返回值设置值(如果不存在),然后返回此值。
GetOrSetFuncLock differs with GetOrSetFunc function is that it executes function f
with mutex.Lock of the hash map.
GetOrSetFuncLock 与 GetOrSetFunc 函数的不同之处在于它使用互斥锁执行函数 f
。哈希映射的锁定。
Example
|
|
(*RedBlackTree) GetVar
|
|
GetVar returns a gvar.Var with the value by given key
. The returned gvar.Var is un-concurrent safe.
GetVar 返回一个 gvar。Var 的值由 给定 key
。返回的 gvar。Var 是非并发安全的。
Example
|
|
(*RedBlackTree) GetVarOrSet
|
|
GetVarOrSet returns a gvar.Var with result from GetVarOrSet. The returned gvar.Var is un-concurrent safe.
GetVarOrSet 返回 gvar。具有 GetVarOrSet 结果的 Var。返回的 gvar。Var 是非并发安全的。
Example
|
|
(*RedBlackTree) GetVarOrSetFunc
|
|
GetVarOrSetFunc returns a gvar.Var with result from GetOrSetFunc. The returned gvar.Var is un-concurrent safe.
GetVarOrSetFunc 返回 gvar。具有 GetOrSetFunc 结果的 Var。返回的 gvar。Var 是非并发安全的。
Example
|
|
(*RedBlackTree) GetVarOrSetFuncLock
|
|
GetVarOrSetFuncLock returns a gvar.Var with result from GetOrSetFuncLock. The returned gvar.Var is un-concurrent safe.
GetVarOrSetFuncLock 返回 gvar。具有 GetOrSetFuncLock 结果的 Var。返回的 gvar。Var 是非并发安全的。
Example
|
|
(*RedBlackTree) IsEmpty
|
|
IsEmpty returns true if tree does not contain any nodes.
如果树不包含任何节点,则 IsEmpty 返回 true。
Example
|
|
(*RedBlackTree) Iterator
|
|
Iterator is alias of IteratorAsc.
Iterator 是 IteratorAsc 的别名。
Example
|
|
(*RedBlackTree) IteratorAsc
|
|
IteratorAsc iterates the tree readonly in ascending order with given callback function f
. If f
returns true, then it continues iterating; or false to stop.
IteratorAsc 使用给定的回调函数 f
按升序迭代树只读。如果 f
返回 true,则继续迭代;或 false 停止。
Example
|
|
(*RedBlackTree) IteratorAscFrom
|
|
IteratorAscFrom iterates the tree readonly in ascending order with given callback function f
. The parameter key
specifies the start entry for iterating. The match
specifies whether starting iterating if the key
is fully matched, or else using index searching iterating. If f
returns true, then it continues iterating; or false to stop.
IteratorAscFrom 使用给定的回调函数 f
按升序迭代树只读。该参数 key
指定用于迭代的开始条目。指定 match
在完全 key
匹配时是开始迭代,还是使用索引搜索迭代。如果 f
返回 true,则继续迭代;或 false 停止。
(*RedBlackTree) IteratorDesc
|
|
IteratorDesc iterates the tree readonly in descending order with given callback function f
. If f
returns true, then it continues iterating; or false to stop.
IteratorDesc 使用给定的回调函数 f
按降序只读迭代树。如果 f
返回 true,则继续迭代;或 false 停止。
Example
|
|
(*RedBlackTree) IteratorDescFrom
|
|
IteratorDescFrom iterates the tree readonly in descending order with given callback function f
. The parameter key
specifies the start entry for iterating. The match
specifies whether starting iterating if the key
is fully matched, or else using index searching iterating. If f
returns true, then it continues iterating; or false to stop.
IteratorDescFrom 使用给定的回调函数 f
按降序迭代树只读。该参数 key
指定用于迭代的开始条目。指定 match
在完全 key
匹配时是开始迭代,还是使用索引搜索迭代。如果 f
返回 true,则继续迭代;或 false 停止。
Example
|
|
(*RedBlackTree) IteratorFrom
|
|
IteratorFrom is alias of IteratorAscFrom.
IteratorFrom 是 IteratorAscFrom 的别名。
Example
|
|
(*RedBlackTree) Keys
|
|
Keys returns all keys in asc order.
Keys 按 asc 顺序返回所有键。
Example
|
|
(*RedBlackTree) Left
|
|
Left returns the left-most (min) node or nil if tree is empty.
如果树为空,则 left 返回最左边的 (min) 节点或 nil。
Example
|
|
(*RedBlackTree) Map
|
|
Map returns all key-value items as map.
Map 以 map 的形式返回所有键值项。
Example
|
|
(*RedBlackTree) MapStrAny
|
|
MapStrAny returns all key-value items as map[string]interface{}.
MapStrAny 以 map[string]interface{} 的形式返回所有键值项。
Example
|
|
(RedBlackTree) MarshalJSON
|
|
MarshalJSON implements the interface MarshalJSON for json.Marshal.
MarshalJSON 实现 json 的接口 MarshalJSON。元帅。
Example
|
|
(*RedBlackTree) Print
|
|
Print prints the tree to stdout.
打印 将树打印到 stdout。
Example
|
|
(*RedBlackTree) Remove
|
|
Remove removes the node from the tree by key
.
Remove 通过 key
从树中删除节点。
Example
|
|
(*RedBlackTree) Removes
|
|
Removes batch deletes values of the tree by keys
.
删除 batch 删除树 keys
的值。
Example
|
|
(*RedBlackTree) Replace
|
|
Replace the data of the tree with given data
.
将树的数据替换为 给定 data
的 .
Example
|
|
(*RedBlackTree) Right
|
|
Right returns the right-most (max) node or nil if tree is empty.
如果 tree 为空,则 Right 返回最右边的 (max) 节点或 nil。
Example
|
|
(*RedBlackTree) Search
|
|
Search searches the tree with given key
. Second return parameter found
is true if key was found, otherwise false.
搜索 使用给定 key
的树搜索 。如果找到键,则第二个返回参数 found
为 true,否则为 false。
Example
|
|
(*RedBlackTree) Set
|
|
Set inserts key-value item into the tree.
Set 将键值项插入到树中。
Example
|
|
(*RedBlackTree) SetComparator
|
|
SetComparator sets/changes the comparator for sorting.
SetComparator 设置/更改用于排序的比较器。
Example
|
|
(*RedBlackTree) SetIfNotExist
|
|
SetIfNotExist sets value
to the map if the key
does not exist, and then returns true. It returns false if key
exists, and value
would be ignored.
如果 不存在 key
,则 SetIfNotExist 设置为 value
映射,然后返回 true。如果 key
存在,则返回 false,并将 value
被忽略。
Example
|
|
(*RedBlackTree) SetIfNotExistFunc
|
|
SetIfNotExistFunc sets value with return value of callback function f
, and then returns true. It returns false if key
exists, and value
would be ignored.
SetIfNotExistFunc 使用回调函数 f
的返回值设置值,然后返回 true。如果 key
存在,则返回 false,并将 value
被忽略。
Example
|
|
(*RedBlackTree) SetIfNotExistFuncLock
|
|
SetIfNotExistFuncLock sets value with return value of callback function f
, and then returns true. It returns false if key
exists, and value
would be ignored.
SetIfNotExistFuncLock 使用回调函数 f
的返回值设置值,然后返回 true。如果 key
存在,则返回 false,并将 value
被忽略。
SetIfNotExistFuncLock differs with SetIfNotExistFunc function is that it executes function f
with mutex.Lock of the hash map.
SetIfNotExistFuncLock 与 SetIfNotExistFunc 函数的不同之处在于它使用互斥锁执行函数 f
。哈希映射的锁定。
Example
|
|
(*RedBlackTree) Sets
|
|
Sets batch sets key-values to the tree.
将批处理设置树的键值。
Example
|
|
(*RedBlackTree) Size
|
|
Size returns number of nodes in the tree.
size 返回树中的节点数。
Example
|
|
(*RedBlackTree) String
|
|
String returns a string representation of container.
String 返回容器的字符串表示形式。
Example
|
|
(*RedBlackTree) UnmarshalJSON
|
|
UnmarshalJSON implements the interface UnmarshalJSON for json.Unmarshal.
UnmarshalJSON 实现 json 的接口 UnmarshalJSON。元帅。
Example
|
|
(*RedBlackTree) UnmarshalValue
|
|
UnmarshalValue is an interface implement which sets any type of value for map.
UnmarshalValue 是一个接口实现,用于为 map 设置任何类型的值。
Example
|
|
(*RedBlackTree) Values
|
|
Values returns all values in asc order based on the key.
Values 根据键按 asc 顺序返回所有值。
Example
|
|
type RedBlackTreeNode
|
|
RedBlackTreeNode is a single element within the tree.
RedBlackTreeNode 是树中的单个元素。