ReconArt.PriorityQueue 1.0.2

Prefix Reserved
There is a newer version of this package available.
See the version list below for details.
dotnet add package ReconArt.PriorityQueue --version 1.0.2                
NuGet\Install-Package ReconArt.PriorityQueue -Version 1.0.2                
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="ReconArt.PriorityQueue" Version="1.0.2" />                
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add ReconArt.PriorityQueue --version 1.0.2                
#r "nuget: ReconArt.PriorityQueue, 1.0.2"                
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
// Install ReconArt.PriorityQueue as a Cake Addin
#addin nuget:?package=ReconArt.PriorityQueue&version=1.0.2

// Install ReconArt.PriorityQueue as a Cake Tool
#tool nuget:?package=ReconArt.PriorityQueue&version=1.0.2                

ReconArt.PriorityQueue

Overview

ReconArt.PriorityQueue is a .NET library that provides a fast and efficient implementation of a priority queue with constant time complexity for all operations. It supports only 6 priorities, making it suitable for scenarios where a limited number of priority levels are sufficient.

Features

  • Constant time complexity for all operations
  • Supports 6 priority levels
  • Simple API for enqueueing, dequeueing, and removing elements
  • Designed for scenarios where a limited number of priority levels are sufficient
  • Supports .NET 8.0 and .NET 9.0

Installation

To install the ReconArt.PriorityQueue package, use the NuGet Package Manager or the Package Manager Console with the following command:

Install-Package ReconArt.PriorityQueue

Usage

Creating a Priority Queue

You can create a priority queue and add elements with specified priorities:

var priorityQueue = new PriorityQueue<string>();

// Enqueue elements with priorities (0 to 5, where 0 is the highest priority)
priorityQueue.Enqueue("High Priority Task", 0);
priorityQueue.Enqueue("Medium Priority Task", 2);
priorityQueue.Enqueue("Low Priority Task", 5);

Dequeueing Elements

Dequeue elements from the priority queue, which removes and returns the element with the highest priority:

var task = priorityQueue.Dequeue();
// task will be "High Priority Task"

Peeking at the Next Element

Peek at the next element without removing it:

var nextTask = priorityQueue.Peek();

Removing Specific Elements

Remove a specific element by its node and priority:

var node = priorityQueue.Enqueue("Specific Task", 3);
bool removed = priorityQueue.TryRemove(node, 3);

Limitations

  • The priority queue is not thread-safe.
  • Supports only 6 priority levels (0 to 5).

Contributing

If you'd like to contribute to the project, please reach out to the ReconArt/priority-queue team.

Support

If you encounter any issues or require assistance, please file an issue in the GitHub Issues section of the repository.

License

Copyright © ReconArt, Inc. 2008-2024. All rights reserved.

Authors and Acknowledgments

Developed by ReconArt, Inc..

Product Compatible and additional computed target framework versions.
.NET net8.0 is compatible.  net8.0-android was computed.  net8.0-browser was computed.  net8.0-ios was computed.  net8.0-maccatalyst was computed.  net8.0-macos was computed.  net8.0-tvos was computed.  net8.0-windows was computed.  net9.0 is compatible.  net9.0-android was computed.  net9.0-browser was computed.  net9.0-ios was computed.  net9.0-maccatalyst was computed.  net9.0-macos was computed.  net9.0-tvos was computed.  net9.0-windows was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.
  • net8.0

    • No dependencies.
  • net9.0

    • No dependencies.

NuGet packages (1)

Showing the top 1 NuGet packages that depend on ReconArt.PriorityQueue:

Package Downloads
ReconArt.Synchronization.UnitDistributorSlim

Allows multi-threaded access to a shared resource with a limited supply by distributing that supply fairly. Supports priority-based distribution.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last updated
1.0.3 139 11/18/2024
1.0.2 85 11/18/2024