🚀 Big News: Socket Acquires Coana to Bring Reachability Analysis to Every Appsec Team.Learn more

typescript-ds-lib

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

typescript-ds-lib

A collection of TypeScript data structure implementations

0.4.0
latest
Version published
Weekly downloads
9
80%
Maintainers
0
Weekly downloads
 
Created

TypeScript Data Structure Library

NPM

TypeScript data structure implementations without external dependencies. Why to use this library?

  • Fully Tested
  • Fast
  • 0 Dependencies
  • Lightweight
  • Comes with Comparator (for custom types)
  • equals() method supported for all data structures
  • Well documented

Install

npm install typescript-ds-lib

Usage

import { Stack } from 'typescript-ds-lib';

const stack: Stack<number> = new Stack<number>();

stack.push(1);
stack.push(2);
stack.push(3);

console.log(stack.top());   // 3
stack.pop();
console.log(stack.top());   // 2
console.log(stack.size());  // 2

Documentation and Examples

See the documentation for more details and examples.

Data Structures

  • Binary Search Tree
  • Deque
  • Hash Table (unordered map)
  • Heap
  • Linked List
  • Map
  • Matrix
  • Priority Queue
  • Queue
  • Red-Black Tree
  • Set
  • Stack
  • Graph (coming soon)

Map-Set vs Native JavaScript Map-Set

The library's Map and Set data structures are implemented as Red-Black Tree and Binary Search Tree respectively. Native JavaScript Map and Set are implemented as Hash Table and Hash Set respectively.

When to use the library's Map and Set?

  • If CPU consumption is important for you as RBT and BST do not do any kind of CPU intensive hashing.
  • If your goal is to have a balanced tree with O(log n) complexity for all the operations in Map.
  • If memory efficiency is important for you as RBT and BST are more memory efficient than Hash Table and HashSet.

You can consider the library's Map and Set as ordered map and set, and native JavaScript Map and Set as unordered map and set.

Contributions

Contributions are welcome and can be made by submitting GitHub pull requests to this repository. In general, the source code follows Airbnb JavaScript Style Guide and the rules specified in .eslintrc.json file.

License

This source code is available to everyone under the standard MIT LICENSE.

FAQs

Package last updated on 26 Dec 2024

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts