stack

package
v0.0.7 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jan 31, 2021 License: Apache-2.0 Imports: 2 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var (
	NotExistErr = errors.New("not exist")
)

Functions

This section is empty.

Types

type Stack

type Stack struct {
	// contains filtered or unexported fields
}

func NewStack

func NewStack() *Stack

NewStack 创建栈 非协程安全

func (*Stack) Clean

func (stack *Stack) Clean()

Clean 清空栈

func (*Stack) IsEmpty

func (stack *Stack) IsEmpty() bool

IsEmpty 空栈

func (*Stack) Len

func (stack *Stack) Len() int

Len 大小

func (*Stack) Peek

func (stack *Stack) Peek() (interface{}, error)

Peek 返回栈顶 当栈顶为空时,返回 nil, NotExistErr

func (*Stack) Pop

func (stack *Stack) Pop() (interface{}, error)

Pop 移除并返回当前栈顶 当栈顶为空时,返回 nil, NotExistErr

func (*Stack) Push

func (stack *Stack) Push(v interface{})

Push 入栈

type Stacker

type Stacker interface {
	Len() int                   // 大小
	IsEmpty() bool              // 是否空栈
	Peek() (interface{}, error) // 返回栈顶
	Pop() (interface{}, error)  // 移除并返回当前栈顶
	Push(v interface{})         // 入栈
	Clean()                     // 清空栈
}

Stacker 实现Stacker就拥有栈的功能

type SyncStack

type SyncStack struct {
	// contains filtered or unexported fields
}

SyncStack 同步栈

func NewDefaultSyncStack

func NewDefaultSyncStack() *SyncStack

NewDefaultSyncStack 创建默认同步栈

func NewSyncStack

func NewSyncStack(stack Stacker) *SyncStack

NewSyncStack 创建同步栈 stack 实现了 Stacker 接口的非安全栈

func (*SyncStack) Clean

func (stack *SyncStack) Clean()

Clean 清空栈

func (*SyncStack) IsEmpty

func (stack *SyncStack) IsEmpty() bool

IsEmpty 空栈

func (*SyncStack) Len

func (stack *SyncStack) Len() int

Len 栈大小

func (*SyncStack) Peek

func (stack *SyncStack) Peek() (interface{}, error)

Peek 返回栈顶

func (*SyncStack) Pop

func (stack *SyncStack) Pop() (interface{}, error)

Pop 移除并返回当前栈顶

func (*SyncStack) Push

func (stack *SyncStack) Push(v interface{})

Push 入栈

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL