由链表实现的stack
type Iterator
func (iterator *Iterator) Begin() // 将迭代器重置为初始状态,然后调用Next获取第一个元素
func (iterator *Iterator) End() // 将迭代器移过最后一个元素,然后调用Prev获取最后一个元素
// 将迭代器移动到第一个元素,如果容器中有第一个元素则返回true。
// 如果First()返回true,则可以通过index()和value()检索第一个元素的索引和值。修改迭代器的状态
func (iterator *Iterator) First() bool
// 将迭代器移动到最后元素,如果容器中有第一个元素则返回true。
// 如果Last()返回true,则可以通过index()和value()检索第一个元素的索引和值。修改迭代器的状态
func (iterator *Iterator) Last() bool
func (iterator *Iterator) Next() bool
func (iterator *Iterator) Prev() bool
func (iterator *Iterator) Index() int
func (iterator *Iterator) Value() interface{}
type Stack
func New() *Stack
func (stack *Stack) Clear()
func (stack *Stack) Empty() bool
func (stack *Stack) FromJSON(data []byte) error
func (stack *Stack) Iterator() Iterator
func (stack *Stack) Peek() (value interface{}, ok bool)
func (stack *Stack) Pop() (value interface{}, ok bool)
func (stack *Stack) Push(value interface{})
func (stack *Stack) Size() int
func (stack *Stack) String() string
func (stack *Stack) ToJSON() ([]byte, error)
func (stack *Stack) Values() []interface{}
例子
package main
import lls "github.com/emirpasic/gods/stacks/linkedliststack"
// LinkedListStackExample to demonstrate basic usage of LinkedListStack
func main() {
stack := lls.New() // empty
stack.Push(1) // 1
stack.Push(2) // 1, 2
stack.Values() // 2, 1 (LIFO order)
_, _ = stack.Peek() // 2,true
_, _ = stack.Pop() // 2, true
_, _ = stack.Pop() // 1, true
_, _ = stack.Pop() // nil, false (nothing to pop)
stack.Push(1) // 1
stack.Clear() // empty
stack.Empty() // true
stack.Size() // 0
}