queue

package
v0.1.2 Latest Latest
Warning

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

Go to latest
Published: May 23, 2024 License: Apache-2.0 Imports: 4 Imported by: 0

Documentation

Overview

Package queue provides several implementations of a queue data structure.

Index

Examples

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type PriorityQueue

type PriorityQueue interface {
	// Enqueue adds an element to the priority queue with the given priority.
	Enqueue(element any, priority int) (ok bool)
	// Dequeue removes and returns the element with the highest priority from the priority queue.
	Dequeue() (element any, ok bool)
	// Peek returns the element with the highest priority from the priority queue without removing it.
	Peek() (element any, ok bool)
	// Empty checks if the priority queue is empty.
	Empty() bool
	// Full checks if the priority queue is full.
	Full() bool
	// Size returns the number of elements in the priority queue.
	Size() int
}

PriorityQueue is an interface for a priority queue.

Example
pq, _ := NewPriorityQueue(3)
pq.Enqueue(100, 3)
pq.Enqueue(80, 22)
pq.Enqueue(75, 1)
v, _ := pq.Dequeue()
fmt.Println(v)
v, _ = pq.Dequeue()
fmt.Println(v)
v, _ = pq.Dequeue()
fmt.Println(v)
Output:

80
100
75

func NewPriorityQueue

func NewPriorityQueue(capacity int) (q PriorityQueue, err error)

NewPriorityQueue creates a new priority queue with the given capacity.

type Queue

type Queue interface {
	// Enqueue adds an element to the end of the queue.
	Enqueue(element any) (ok bool)
	// Dequeue removes and returns the element at the front of the queue.
	Dequeue() (element any, ok bool)
	// Peek returns the element at the front of the queue without removing it.
	Peek() (element any, ok bool)
	// Empty checks if the queue is empty.
	Empty() bool
	// Full checks if the queue is full.
	Full() bool
}

Queue is an interface for a queue data structure.

Example
s := NewQueue(3)
for i := 0; i < 3; i++ {
	s.Enqueue(i)
}
for i := 0; i < 3; i++ {
	fmt.Println(s.Dequeue())
}
Output:

0 true
1 true
2 true

func NewLoopQueue

func NewLoopQueue(capacity int) (q Queue, err error)

NewLoopQueue creates a new loop queue with the specified capacity.

Example
s, _ := NewLoopQueue(3)
for i := 0; i < 3; i++ {
	s.Enqueue(i)
}
for i := 0; i < 3; i++ {
	fmt.Println(s.Dequeue())
}
Output:

0 true
1 true
2 true

func NewQueue

func NewQueue(capacity int) Queue

NewQueue creates a new linear queue with the specified capacity.

Jump to

Keyboard shortcuts

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