prioqueue

package
v0.0.0-...-b51443a Latest Latest
Warning

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

Go to latest
Published: Nov 24, 2022 License: BSD-2-Clause Imports: 1 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Item

type Item interface {
	Key() string
	Less(Item) bool
}

Item of queue

type PrioQueue

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

PrioQueue priority queue

func New

func New(items ...Item) *PrioQueue

New return *PrioQueue

func (*PrioQueue) Add

func (pq *PrioQueue) Add(x Item)

Add add item

func (*PrioQueue) Get

func (pq *PrioQueue) Get(key string) (Item, bool)

Get item by key

func (*PrioQueue) Len

func (pq *PrioQueue) Len() int

Len length

func (*PrioQueue) Less

func (pq *PrioQueue) Less(i, j int) bool

Less judge items[i] < items[j]

func (*PrioQueue) Pop

func (pq *PrioQueue) Pop() interface{}

Pop last item

func (*PrioQueue) PopRoot

func (pq *PrioQueue) PopRoot() (Item, bool)

PopRoot pop root item

func (*PrioQueue) Push

func (pq *PrioQueue) Push(x interface{})

Push a item in tail

func (*PrioQueue) Root

func (pq *PrioQueue) Root() (Item, bool)

Root return root

func (*PrioQueue) Swap

func (pq *PrioQueue) Swap(i, j int)

Swap item i and j

func (*PrioQueue) Update

func (pq *PrioQueue) Update(x Item)

Update when priority change

Jump to

Keyboard shortcuts

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