change key types to any
This commit is contained in:
6
tree.go
6
tree.go
@@ -5,7 +5,7 @@ import (
|
||||
)
|
||||
|
||||
// Node is a node on the binary search tree.
|
||||
type Node[K comparable, V any, C Sorter[K]] struct {
|
||||
type Node[K, V any, C Sorter[K]] struct {
|
||||
lson, rson *Node[K, V, C]
|
||||
parent *Node[K, V, C]
|
||||
bal uint32 // for treap balancing
|
||||
@@ -23,7 +23,7 @@ func (n *Node[K, V, C]) Key() K {
|
||||
// addresses and don't work with values.
|
||||
//
|
||||
// The zero value is a usable, empty tree.
|
||||
type Tree[K comparable, V any, C Sorter[K]] struct {
|
||||
type Tree[K, V any, C Sorter[K]] struct {
|
||||
root *Node[K, V, C]
|
||||
}
|
||||
|
||||
@@ -58,6 +58,8 @@ func (t *Tree[K, V, C]) InsertNode(key K, value V) (node *Node[K, V, C], is_adde
|
||||
|
||||
// realInsertNode recursivly searches and tries to insert the new node.
|
||||
// If the key is found, it's passed into *result.
|
||||
//
|
||||
// Returns the new node that should be placed in CUR's place (usually itself).
|
||||
func (t *Tree[K, V, C]) realInsertNode(cur, parent *Node[K, V, C], key K, value V, result **Node[K, V, C], is_added *bool) (node *Node[K, V, C]) {
|
||||
var c C
|
||||
if cur == nil {
|
||||
|
Reference in New Issue
Block a user