Documentation ¶
Index ¶
- type HashTab
- func (tt *HashTab[T]) Delete(find *T) (found bool)
- func (tt *HashTab[T]) Dump(fo io.Writer)
- func (tt *HashTab[T]) Insert(item *T)
- func (tt *HashTab[T]) IsEmpty() bool
- func (tt *HashTab[T]) Len() int
- func (tt *HashTab[T]) Length() int
- func (tt *HashTab[T]) NlDelete(find *T) (found bool)
- func (tt *HashTab[T]) NlSearch(find *T) (rv *T)
- func (tt *HashTab[T]) ReadLock()
- func (tt *HashTab[T]) ReadUnlock()
- func (tt *HashTab[T]) Search(find *T) (rv *T)
- func (tt *HashTab[T]) Truncate()
- func (tt *HashTab[T]) Walk(fx binary_tree_ts.ApplyFunction[T], userData interface{}) (b bool)
- func (tt *HashTab[T]) WriteLock()
- func (tt *HashTab[T]) WriteUnlock()
- type Hashable
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type HashTab ¶
type HashTab[T comparable.Comparable] struct { // contains filtered or unexported fields }
HashTab is a generic hash table that grows the underlying ttable when the number of entries exceeds a threshold. The table is doulbed in size.
func NewHashTab ¶
func NewHashTab[T comparable.Comparable](n int, saturation float64) *HashTab[T]
Complexity is O(1).
func (*HashTab[T]) Delete ¶
Delete an element from the hash_tab. The element needs to have been located with "Search" or as a result of a match using the Walk function. Complexity is O(1)
func (*HashTab[T]) Insert ¶
func (tt *HashTab[T]) Insert(item *T)
Insert will add a new item to the tree. If it is a duplicate of an exiting item the new item will replace the existing one. Complexity is O(log n)/k.
func (*HashTab[T]) IsEmpty ¶
IsEmpty will return true if the hash table is empty Complexity is O(1).
func (*HashTab[T]) NlSearch ¶
func (tt *HashTab[T]) NlSearch(find *T) (rv *T)
Search will walk the tree looking for `find` and retrn the found item if it is in the tree. If it is not found then `nil` will be returned. Complexity is O(log n)/k.
func (*HashTab[T]) ReadUnlock ¶
func (tt *HashTab[T]) ReadUnlock()
func (*HashTab[T]) Search ¶
func (tt *HashTab[T]) Search(find *T) (rv *T)
Search will walk the tree looking for `find` and retrn the found item if it is in the tree. If it is not found then `nil` will be returned. Complexity is O(log n)/k.
func (*HashTab[T]) Truncate ¶
func (tt *HashTab[T]) Truncate()
Truncate removes all data from the tree. Complexity is O(1).
func (*HashTab[T]) Walk ¶
func (tt *HashTab[T]) Walk(fx binary_tree_ts.ApplyFunction[T], userData interface{}) (b bool)
func (*HashTab[T]) WriteLock ¶
func (tt *HashTab[T]) WriteLock()
ht.WriteLock() ht.WriteUnlock() ht.ReadLock() ht.ReadUnlock()
func (*HashTab[T]) WriteUnlock ¶
func (tt *HashTab[T]) WriteUnlock()