Jul 20, 2023

Fast and easy to use classic heaps

A heap is a partially sorted structure where it’s always easy to extract the smallest element. If the collection of elements is changing dynamically, a heap has less overhead than keeping the collection fully sorted.

The order in which equal elements get extracted is unspecified.

The main order relations supported by this module are “<” numeric compare and “lt” string compare.

The internals of the module do nothing with the elements inserted except inspecting the key. This means that if you for example store a blessed object, that’s what you will get back on extract. It’s also ok to keep references to the elements around and make changes to them while they are in the heap as long as you don’t change the key.

HeapSimple itself is just a loader for the code that will actually implement the functionality mentioned above. You will need to install something like HeapSimpleXS or HeapSimplePerl to be able to actually do anything.

Checkout these related ports:
  • Zziplib - Library to provide transparent read access to zipped files
  • Zydis - Fast and lightweight x86/x86-64 disassembler library
  • Zycore-c - Support library with platform independent types, macros, etc for Zydis
  • Zthread - Platform-independent object-oriented C++ threading library
  • Zookeeper - Coordination Service for Distributed Applications
  • Zls - Zig LSP implementation + Zig Language Server
  • Zfp - High throughput library for compressed floating-point arrays
  • Zeal - Offline documentation browser
  • Zapcc - C++ caching compiler based on clang
  • Zanata-platform - Web-based translation platform
  • Zanata-cli - Zanata Java command line client
  • Z88dk - Complete Z80/Z180 development kit
  • Z80ex - ZiLOG Z80 CPU emulator library
  • Z80asm - Assembler for the Z80 microprocessor
  • Z80-asm - Z80 assembly code assembler and disassembler