Displaying 1 to 20 from 25 results

immutable-js - Immutable persistent data collections for Javascript which increase efficiency and simplicity

  •    Javascript

Immutable data cannot be changed once created, leading to much simpler application development, no defensive copying, and enabling advanced memoization and change detection techniques with simple logic. Persistent data presents a mutative API which does not update the data in-place, but instead always yields new updated data. Immutable.js provides many Persistent Immutable data structures including: List, Stack, Map, OrderedMap, Set, OrderedSet and Record.



01. Stack 02. Queue 03. List 04. Hash Table 05. Binary Tree 06. Red Black Tree

C# .NET Generic Data structures Library

  •    DotNet

C# .NET Generic Data structures Library like Binary Tree, B-Tree, Red-Black tree implementation. Suggestions/Contributions welcome on what more can be provided in this project.

Wintellect's Power Collections for .NET

  •    DotNet

Welcome to Power Collections, A Community Project to Develop the Best Public License type safe Collection Classes for .NET. Power Collections makes heavy use of .NET Generics. The goal of the project is to provide generic collection classes that are not available in the .NET ...


  •    DotNet

Algorithm and data-structure library for .NET 3.5 and up. Algorithmia contains sophisticated algorithms and data-structures like graphs, priority queues, command, undo-redo and more.

dotNet Extension Library


This is some extension library of .Net. It provides some useful functions that native .Net Framwork doesn't provide.

transmute - kind of like lodash but works with Immutable

  •    Javascript

@hs/transmute provides convenient, composable functions for transforming Arrays, Immutable.js data structures, and Objects.Transmute can be installed with npm or yarn.

go-queue - Queue data structure for Go.

  •    Go

Package queue implements a double-ended queue (aka "deque") data structure on top of a slice. All operations run in (amortized) constant time. Benchmarks compare favorably to container/list as well as to Go's channels. These queues are not safe for concurrent use. I tried to stick to the conventions established by container/list even though I disagree with them (see RANT.md for details). In other words, this data structure is ready for the standard library (hah!).

scala-prioritymap - Immutable priority maps for Scala

  •    Scala

Priority maps are similar to sorted maps, but while for sorted maps iterator returns an iterator that produces entries sorted by their keys, calling iterator on a priority map returns an iterator that produces entries sorted by their values. Priority maps also offer several range methods, which return a submap with values inside a given range. Since calling head on a priority map returns a key-value pair with minimal value, priority maps can also be thought of as a more versatile variant of priority queues.

Quadtree - Quadtree implementation

  •    Java

This is a Java implementation of Quadtree, a tree data structure useful to store 2D positional data.

scalike-typescript - Scala like utility for TypeScript.

  •    TypeScript

You can use map, flatMap like a Scala. Almost implements methods of Scala. and, of counse Immutable. Install scalike using npm.

fingertree.js - Implementation of Finger Tree in JavaScript.

  •    Javascript

Implementation of Finger Tree, an immutable general-purpose data structure which can further be used to implement random-access sequences, priority-queues, ordered sequences, interval trees, etc. Based on: Ralf Hinze and Ross Paterson, "Finger trees: a simple general-purpose data structure".


  •    Javascript

High performance implementation of Immutable Sequence in JavaScript, based on Finger Tree. The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

stash-rs - A fast map for when one doesn't care about choosing the keys.

  •    Rust

Stash is a library for storing items where you need (amortized) O(1) insertion, deletion, and lookups but don't care about the order of the items and don't need to be able to choose the keys. Please see the API documentation for a more detailed description.

persistent-hash-trie - Pure string:val storage, using structural sharing

  •    Javascript

This project is no longer actively supported. If anyone is interested in becoming the new maintainer, don't hesitate to contact me (hughfdjackson@googlemail.com). For an alternative, consider https://npmjs.org/package/mori.

node-dequeue - A simple double ended queue datastructure

  •    Javascript

Dequeue is implemented as a doubly linked circular list with a titular head node. By "titular head node", I mean an empty node to designate the beginning and end of the circularly linked list. I first saw this construction in the linux kernel source and it seem simple and elegant. I added the .length property to use it like I was using an Array. I was using a javascript Array as a FIFO. Somewhere between 100,000 and 200,000 entries the program performance went to hell (dev host is a MBP w/8GB RAM). 15 minutes later, I implemented a simple dequeue and my FIFO scales up to millions of entries.

quadtree-lib - Efficient quadtrees library written in CoffeeScript.

  •    CoffeeScript

If you are already familiar with quadtrees, then you should perfectly understand how to use this library. Otherwise, there are many online articles (wikipedia does the job) which explain the advantages of using the quadtree datastructure in certain situations.

skiprope - package skiprope is a rope-like data structure built on top of skiplists

  •    Go

package skiprope is an implementation of the rope data structure. It's not strictly a rope as per se. It's not built on top of a binary tree like most rope data structures are. Instead it's built on top of a skip list. This makes it more akin to a piece table than a true rope.

We have large collection of open source products. Follow the tags from Tag Cloud >>

Open source products are scattered around the web. Please provide information about the open source projects you own / you use. Add Projects.