Documentation ¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
View Source
var ( ErrOutOfCapacity = errors.New("ekit: 超出最大容量限制") ErrEmptyQueue = errors.New("ekit: 队列为空") )
Functions ¶
This section is empty.
Types ¶
type PriorityQueue ¶
type PriorityQueue[T any] struct { // contains filtered or unexported fields }
PriorityQueue 是一个基于小顶堆的优先队列 当capacity <= 0时,为无界队列,切片容量会动态扩缩容 当capacity > 0 时,为有界队列,初始化后就固定容量,不会扩缩容
func NewPriorityQueue ¶
func NewPriorityQueue[T any](capacity int, compare ekit.Comparator[T]) *PriorityQueue[T]
NewPriorityQueue 创建优先队列 capacity <= 0 时,为无界队列,否则有有界队列
func (*PriorityQueue[T]) Dequeue ¶
func (p *PriorityQueue[T]) Dequeue() (T, error)
func (*PriorityQueue[T]) Enqueue ¶
func (p *PriorityQueue[T]) Enqueue(t T) error
func (*PriorityQueue[T]) IsBoundless ¶
func (p *PriorityQueue[T]) IsBoundless() bool
func (*PriorityQueue[T]) Len ¶
func (p *PriorityQueue[T]) Len() int
func (*PriorityQueue[T]) Peek ¶
func (p *PriorityQueue[T]) Peek() (T, error)
Click to show internal directories.
Click to hide internal directories.