Skip to content

Repository files navigation

stacks

Go ReferenceLicenseBuild

stacks is a Go library with generics implementing multiple Stack data structures for optimizing by use-case.

stack (noun):
1. a LIFO data structure

Getting Started

The stacks package can be added to a Go project with go get.

go get cattlecloud.net/go/stacks@latest
import"cattlecloud.net/go/stacks"

Examples

backed by slice

The Simple stack type is backed by a normal Go slice and is a good choice for small numbers of elements or where the size of the stack will not increase or decrease repeatedly - this is important so as to minmize re-copying the data as the underlying slice is resized.

s:=stacks.Simple[string]()
s.Push("how")
s.Push("are")
s.Push("you")
fmt.Println(s.Pop()) // "you"
backed by linked list

The Linked stack type is backed by a linked-list and is a good choice for large numbers of elements or where the size of the stack does increase or decrease repeatedly. The nature of the linked list avoids the need to re-copy elements as the size of the data structure changes over time.

s:=stacks.Linked[string]()
s.Push("foo")
s.Push("bar")
s.Push("baz")
fmt.Println(s.Pop()) // "baz"
methods
s.Push[T](itemT)
s.Pop() Ts.Peek() Ts.Empty() bools.Size() int

License

The cattlecloud.net/go/stacks module is opensource under the BSD-3-Clause license.

About

stacks is a Go package with generics providing multiple Stack data structures optimized for various use cases

Topics

Resources

Stars

3 stars

Watchers

0 watching

Forks

Releases

Used by

Contributors

Languages