remove size since each put/get will have to update the root node

This commit is contained in:
Chris Lu
2021-08-20 01:19:11 -07:00
parent ec72547c8d
commit 2d237da74a
4 changed files with 0 additions and 32 deletions

View File

@@ -12,28 +12,19 @@ type BpMap BpTree
func NewBpMap(node_size int) *BpMap {
return &BpMap{
root: NewLeaf(node_size, true),
size: 0,
}
}
func (self *BpMap) Size() int {
return (*BpTree)(self).Size()
}
func (self *BpMap) Has(key Hashable) bool {
return (*BpTree)(self).Has(key)
}
func (self *BpMap) Put(key Hashable, value interface{}) (err error) {
had := self.Has(key)
new_root, err := self.root.put(key, value)
if err != nil {
return err
}
self.root = new_root
if !had {
self.size += 1
}
return nil
}
@@ -60,7 +51,6 @@ func (self *BpMap) Remove(key Hashable) (value interface{}, err error) {
} else {
self.root = new_root
}
self.size--
return value, nil
}