由链表实现的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() boolfunc (iterator *Iterator) Next() boolfunc (iterator *Iterator) Prev() boolfunc (iterator *Iterator) Index() intfunc (iterator *Iterator) Value() interface{}
type Stack
func New() *Stackfunc (stack *Stack) Clear()func (stack *Stack) Empty() boolfunc (stack *Stack) FromJSON(data []byte) errorfunc (stack *Stack) Iterator() Iteratorfunc (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() intfunc (stack *Stack) String() stringfunc (stack *Stack) ToJSON() ([]byte, error)func (stack *Stack) Values() []interface{}
例子
package mainimport lls "github.com/emirpasic/gods/stacks/linkedliststack"// LinkedListStackExample to demonstrate basic usage of LinkedListStackfunc main() {stack := lls.New() // emptystack.Push(1) // 1stack.Push(2) // 1, 2stack.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) // 1stack.Clear() // emptystack.Empty() // truestack.Size() // 0}
