1
0
mirror of https://github.com/duke-git/lancet.git synced 2026-02-04 12:52:28 +08:00

feat: add PriorityQueue

This commit is contained in:
dudaodong
2022-04-26 10:18:06 +08:00
parent e614274f07
commit 55e62ed8ca

View File

@@ -0,0 +1,21 @@
package datastructure
import "github.com/duke-git/lancet/v2/lancetconstraints"
// PriorityQueue is a implemented by binary heap tree
// which are referred to as the left child and the right child.
// type T should implements Compare function in lancetconstraints.Comparator interface.
type PriorityQueue[T any] struct {
items []T
size int
comparator lancetconstraints.Comparator
}
// NewPriorityQueue return a pointer of PriorityQueue
func NewPriorityQueue[T any](capacity int, comparator lancetconstraints.Comparator) *NewPriorityQueue[T] {
return &NewPriorityQueue[T]{
items: make([]T, capacity+1),
size: 0,
comparator: comparator,
}
}