Stackgo
Stackgo is a slice-based implementation of a simple stack in Go. It uses a pre-alloc pagination strategy which adds little memory overhead to the stack allocation but makes push operations faster than with a classic Stack implementation.
Please NOTE that the current implementation is NOT thread-safe.
Getting started
Import
You can either import this package directly:
import "github.com/alediaferia/stackgo"
or through gopkg.in
import "gopkg.in/alediaferia/stackgo.v1"
Currently only version 1 has been released.
Usage
Using it is pretty straightforward
package main
import (
"github.com/alediaferia/stackgo"
"fmt"
)
func main() {
stack := stackgo.NewStack()
// Stack supports any type
// so we just push whatever
// we want here
stack.Push(75)
stack.Push(124)
stack.Push("Hello World!")
for stack.Size() > 0 {
fmt.Printf("Just popped %v\n", stack.Pop())
}
}
Performance
Check the implementation details here.
Contribute
I'd really appreciate contributions, otherwise I wouldn't have made this open
License
This code is released under the MIT License term, included in this project tree. Copyright © 2015, Alessandro Diaferia [email protected]