dart_sort_queue 0.0.2+3 copy "dart_sort_queue: ^0.0.2+3" to clipboard
dart_sort_queue: ^0.0.2+3 copied to clipboard

A tiny queue that sorts its items

tinyqueue #

import 'package:dart_sort_queue/dart_sort_queue.dart';

main() {
  // create a priority queue from an existing array (modifies the array)
  dynamic queue = SortQueue<int>([7, 5, 10], (a, b) => a.compareTo(b));

// add some items
  queue.push(7);
  queue.push(5);
  queue.push(10);

// remove the top item
  var top = queue.pop(); // returns 5

// return the top item (without removal)
  top = queue.peek(); // returns 7

// get queue length
  queue.length; // returns 2

// pass a custom item comparator as a second argument
  queue = SortQueue<Map<String, int>>([
    {"value": 5},
    {"value": 7}
  ], (a, b) {
    return (a["value"] ?? 0) - (b["value"] ?? 0);
  });

// turn a queue into a sorted array
  var list = queue.toList();
}

For a faster number-based queue, see flatqueue.

Install #

Install using pub for Dart (dart pub add dart_sort_queue), or for Flutter (flutter pub add dart_sort_queue) then:

Thanks #

A port of tinyqueue by mourner to Dart


Inspired by js-priority-queue by Adam Hooper.