mirror of
https://github.com/c9s/bbgo.git
synced 2024-11-14 02:53:50 +00:00
types: avoid using copy node for rbtree
This commit is contained in:
parent
c3356fa694
commit
0c7710c91b
|
@ -435,17 +435,6 @@ func (tree *RBTree) PostorderOf(current *RBNode, cb func(n *RBNode) bool) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func (tree *RBTree) copyNode(node *RBNode) *RBNode {
|
|
||||||
if node == neel {
|
|
||||||
return neel
|
|
||||||
}
|
|
||||||
|
|
||||||
newNode := *node
|
|
||||||
newNode.left = tree.copyNode(node.left)
|
|
||||||
newNode.right = tree.copyNode(node.right)
|
|
||||||
return &newNode
|
|
||||||
}
|
|
||||||
|
|
||||||
func (tree *RBTree) CopyInorderReverse(limit int) *RBTree {
|
func (tree *RBTree) CopyInorderReverse(limit int) *RBTree {
|
||||||
cnt := 0
|
cnt := 0
|
||||||
newTree := NewRBTree()
|
newTree := NewRBTree()
|
||||||
|
@ -483,9 +472,3 @@ func (tree *RBTree) Print() {
|
||||||
return true
|
return true
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
func (tree *RBTree) Copy() *RBTree {
|
|
||||||
newTree := NewRBTree()
|
|
||||||
newTree.Root = tree.copyNode(tree.Root)
|
|
||||||
return newTree
|
|
||||||
}
|
|
||||||
|
|
|
@ -4,8 +4,9 @@ import (
|
||||||
"math/rand"
|
"math/rand"
|
||||||
"testing"
|
"testing"
|
||||||
|
|
||||||
"github.com/c9s/bbgo/pkg/fixedpoint"
|
|
||||||
"github.com/stretchr/testify/assert"
|
"github.com/stretchr/testify/assert"
|
||||||
|
|
||||||
|
"github.com/c9s/bbgo/pkg/fixedpoint"
|
||||||
)
|
)
|
||||||
|
|
||||||
func TestRBTree_InsertAndDelete(t *testing.T) {
|
func TestRBTree_InsertAndDelete(t *testing.T) {
|
||||||
|
@ -94,7 +95,7 @@ func TestTree_Copy(t *testing.T) {
|
||||||
tree.Insert(fixedpoint.NewFromFloat(4000.0), fixedpoint.NewFromFloat(2.0))
|
tree.Insert(fixedpoint.NewFromFloat(4000.0), fixedpoint.NewFromFloat(2.0))
|
||||||
tree.Insert(fixedpoint.NewFromFloat(2000.0), fixedpoint.NewFromFloat(3.0))
|
tree.Insert(fixedpoint.NewFromFloat(2000.0), fixedpoint.NewFromFloat(3.0))
|
||||||
|
|
||||||
newTree := tree.Copy()
|
newTree := tree.CopyInorder(0)
|
||||||
node1 := newTree.Search(fixedpoint.NewFromFloat(2000.0))
|
node1 := newTree.Search(fixedpoint.NewFromFloat(2000.0))
|
||||||
assert.NotNil(t, node1)
|
assert.NotNil(t, node1)
|
||||||
assert.Equal(t, fixedpoint.NewFromFloat(2000.0), node1.key)
|
assert.Equal(t, fixedpoint.NewFromFloat(2000.0), node1.key)
|
||||||
|
|
Loading…
Reference in New Issue
Block a user