Skip to content

vovazolotoy/TypeScript-STL

Repository files navigation

libstl

Introduction

The Standard JavaScript/TypeScript Library (STL) is a collection of interfaces and classes that are meant to solve common problems.

STL provides a set of standard datastructures. They are grouped here by their underlying implementation which usually defines their general field of application.

Table of Contents

Doubly Linked Lists

A Doubly Linked List (DLL) is a list of nodes linked in both directions to each others. Iterator's operations, access to both ends, addition or removal of nodes have a cost of O(1) when the underlying structure is a DLL. It hence provides a decent implementation for stacks and queues.

Heaps

Heaps are tree-like structures that follow the heap-property: each node is greater than or equal to its children, when compared using the implemented compare method which is global to the heap.

DoublyLinkedList

var DoublyLinkedList = require('libstl').DoublyLinkedList;

var list = new DoublyLinkedList();
list.push(1);
list.push(2);
list.push(3);
list.toString(); // = {1->2->3}

Stack

var Stack = require('libstl').Stack;

var stack = new Stack();
stack.push('A');
stack.push('B');
stack.push('C');
stack.pop(); // = 'C'

Queue

var Queue = require('libstl').Queue;

var queue = new Queue();
queue.enqueue('A');
queue.enqueue('B');
queue.enqueue('C');
queue.dequeue(); // = 'A'

Heap

var Heap = require('libstl').Heap;

var heap = new Heap();
heap.insert(1);
heap.insert(2);
heap.insert(3);
heap.top(); // = 1

MaxHeap

var MaxHeap = require('libstl').MaxHeap;

var heap = new MaxHeap();
heap.insert(1);
heap.insert(2);
heap.insert(3);
heap.top(); // = 3

MinHeap

var MinHeap = require('libstl').MinHeap;

var heap = new MinHeap();
heap.insert(1);
heap.insert(2);
heap.insert(3);
heap.top(); // = 1

PriorityQueue

var PriorityQueue = require('libstl').PriorityQueue;

var queue = new PriorityQueue();

Trie

var Trie = require('libstl').Trie;

var trie = new Trie();
trie.insert('java');
trie.insert('javascript');
trie.insert('typescript');

trie.contains('java'); // true

About

The Standard TypeScript/JavaScript Library

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published