| FazBrowse GitHub Viewer | Trending | | Home |
| Tools: [Download Repo ZIP] [Original HTTPS Page] |
| Name | Name | Last commit date | ||
|---|---|---|---|---|
stacks is a Go library with generics implementing multiple Stack data structures for optimizing by use-case.
stack (noun): 1. a LIFO data structure
The stacks package can be added to a Go project with go get.
go get cattlecloud.net/go/stacks@latestimport "cattlecloud.net/go/stacks"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"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"s.Push[T](item T)
s.Pop() T
s.Peek() T
s.Empty() bool
s.Size() intThe cattlecloud.net/go/stacks module is opensource under the BSD-3-Clause license.
| Back | FazBrowse Home | New Git URL |