diff options
| author | Paul Buetow <git@mx.buetow.org> | 2020-12-21 20:37:44 +0000 |
|---|---|---|
| committer | Paul Buetow <git@mx.buetow.org> | 2020-12-21 20:37:44 +0000 |
| commit | 7815c3d006b64d5a6a6664e7c2c96c9c27f29c45 (patch) | |
| tree | ce0e7bbfd3605c3558d7a4b32f4de2bb28580561 /search/elementary.go | |
| parent | 117a3efac9cd84f14369c46e4833cd265fda0676 (diff) | |
add Size to search interface and fix redblacktree tests
Diffstat (limited to 'search/elementary.go')
| -rw-r--r-- | search/elementary.go | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/search/elementary.go b/search/elementary.go index b522cd0..ed00159 100644 --- a/search/elementary.go +++ b/search/elementary.go @@ -8,6 +8,7 @@ type ElementaryElem struct { type Elementary struct { root *ElementaryElem + size int } func NewElementary() *Elementary { @@ -18,9 +19,14 @@ func (s *Elementary) Empty() bool { return s.root == nil } +func (s *Elementary) Size() int { + return s.size +} + func (s *Elementary) Put(key int, val int) { if s.Empty() { s.root = &ElementaryElem{key, val, nil} + s.size++ return } @@ -33,6 +39,7 @@ func (s *Elementary) Put(key int, val int) { } if elem.next == nil { elem.next = &ElementaryElem{key, val, nil} + s.size++ return } elem = elem.next @@ -61,6 +68,7 @@ func (s *Elementary) Del(key int) (int, error) { defer func() { s.root = s.root.next }() + s.size-- return s.root.val, nil } @@ -70,6 +78,7 @@ func (s *Elementary) Del(key int) (int, error) { defer func() { elem.next = elem.next.next }() + s.size-- return elem.next.val, nil } elem = elem.next |
