gollection

package module
v2.3.2 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jan 6, 2024 License: MIT Imports: 3 Imported by: 1

README

Gollection

Gollection provides Generic Data Structures.

Requirement

GO 1.21 or higher

Support Structure

  • Set
  • Queue
  • Stack
  • Priority Queue
  • B Tree
  • AVL Tree
sync is implemented for thread safe
  • Sync Map
  • Sync Set
  • Sync Queue
  • Sync Stack
  • Sync Priority Queue
  • Sync B Tree
  • Sync AVL Tree

Import

import "github.com/yanun0323/gollection/v2"

Overview

  • Set
    • Contain
    • Len
    • Insert
    • Remove
    • ToSlice
  • Queue
    • Len
    • Dequeue
    • Enqueue
    • Peek
    • ToSlice
  • Stack
    • Len
    • Peek
    • Pop
    • Push
    • ToSlice
  • Priority Queue
    • Len
    • Dequeue
    • Enqueue
    • Peek
    • ToSlice
  • B Tree
    • Contain
    • Len
    • Insert
    • Remove
    • Search
    • Max
    • Min
    • RemoveMax
    • RemoveMin
    • Ascend
    • Descend
  • AVL Tree
    • Contain
    • Len
    • Insert
    • Remove
    • Search
    • Max
    • Min
    • RemoveMax
    • RemoveMin
    • Ascend
    • Descend

License

© Yanun, 2022 ~ now

Released under the MIT License

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type AvlTree added in v2.3.1

type AvlTree[K Orderable, V any] interface {
	Contain(key K) bool
	Len() int
	Insert(key K, value V)
	Remove(key K) (V, bool)
	Search(key K) (V, bool)
	Max() (K, V, bool)
	Min() (K, V, bool)
	RemoveMax() (K, V, bool)
	RemoveMin() (K, V, bool)
	Ascend(fn TreeIter[K, V])
	Descend(fn TreeIter[K, V])
}

func NewAvlTree added in v2.3.1

func NewAvlTree[K Orderable, V any]() AvlTree[K, V]

type BTree added in v2.1.2

type BTree[K Orderable, V any] interface {
	Contain(key K) bool
	Len() int
	Insert(key K, value V)
	Remove(key K) (V, bool)
	Search(key K) (V, bool)
	Max() (K, V, bool)
	Min() (K, V, bool)
	RemoveMax() (K, V, bool)
	RemoveMin() (K, V, bool)
	Ascend(fn TreeIter[K, V])
	Descend(fn TreeIter[K, V])
}

func NewBTree

func NewBTree[K Orderable, V any]() BTree[K, V]

type Compare added in v2.2.0

type Compare[T any] func(T, T) bool

type Iter added in v2.2.0

type Iter[T any] func(T) bool

type MapIter added in v2.2.0

type MapIter[K comparable, V any] func(K, V) bool

type Orderable added in v2.3.1

type Orderable cmp.Ordered

type PriorityQueue added in v2.1.8

type PriorityQueue[T any] interface {
	Len() int
	Dequeue() T
	Enqueue(...T)
	Peek() T
	ToSlice() []T
}

func NewPriorityQueue added in v2.1.8

func NewPriorityQueue[T any](score func(T, T) bool) PriorityQueue[T]

type Queue added in v2.1.2

type Queue[T any] interface {
	Len() int
	Dequeue() T
	Enqueue(...T)
	Peek() T
	ToSlice() []T
}

func NewQueue

func NewQueue[T any]() Queue[T]

type Set added in v2.1.2

type Set[T comparable] interface {
	Contain(T) bool
	Len() int
	Insert(...T)
	Remove(...T)
	ToSlice() []T
}

func NewSet

func NewSet[T comparable]() Set[T]

type Stack added in v2.1.2

type Stack[T any] interface {
	Len() int
	Peek() T
	Pop() T
	Push(...T)
	ToSlice() []T
}

func NewStack

func NewStack[T any]() Stack[T]

type SyncAvlTree added in v2.3.1

type SyncAvlTree[K Orderable, V any] AvlTree[K, V]

func NewSyncAvlTree added in v2.3.1

func NewSyncAvlTree[K Orderable, V any]() SyncAvlTree[K, V]

type SyncBTree added in v2.1.8

type SyncBTree[K Orderable, V any] BTree[K, V]

func NewSyncBTree added in v2.1.8

func NewSyncBTree[K Orderable, V any]() SyncBTree[K, V]

type SyncMap added in v2.1.4

type SyncMap[K comparable, V any] interface {
	Clear()
	Clone() map[K]V
	Iter(fn func(key K, value V) bool)
	Len() int
	Load(key K) (V, bool)
	LoadAndSet(key K, fn func(value V) V)
	Store(key K, value V)
	Stores(fn func(store func(key K, value V)))
	Delete(key K)
}

func NewSyncMap added in v2.1.6

func NewSyncMap[K comparable, V any]() SyncMap[K, V]

type SyncPriorityQueue added in v2.1.8

type SyncPriorityQueue[T any] PriorityQueue[T]

func NewSyncPriorityQueue added in v2.1.8

func NewSyncPriorityQueue[T any](score func(T, T) bool) SyncPriorityQueue[T]

type SyncQueue added in v2.1.8

type SyncQueue[T any] Queue[T]

func NewSyncQueue added in v2.1.8

func NewSyncQueue[T any]() SyncQueue[T]

type SyncSet added in v2.1.4

type SyncSet[T comparable] Set[T]

func NewSyncSet added in v2.1.4

func NewSyncSet[T comparable]() SyncSet[T]

type SyncStack added in v2.1.8

type SyncStack[T any] Stack[T]

func NewSyncStack added in v2.1.8

func NewSyncStack[T any]() SyncStack[T]

type TreeIter added in v2.2.0

type TreeIter[K Orderable, V any] func(K, V) bool

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL