0.0.6 • Published 4 years ago

typedsa v0.0.6

Weekly downloads
12
License
-
Repository
-
Last release
4 years ago

typedsa

A collection of algorithms and data structures written in TypeScript.

Collection interfaces are mostly inspired by a subset of the System.Collection.Generics namespace from the .NET framework. For more information about each algorithm and data structueres, including complexity, check the TSDoc style documentation on each file.

Installing

npm install --save typedsa

Project Structure

The library is divided in 4 main submodules: ds, algs, utils and errors.

|_lib
|___algs
|_____sorting
|_______mergeSort.ts
|_______quickSort.ts
|_______...
|_______Sorter.ts
|___ds
|_____linked-list
|_____queue
|_____stack
|_____...
|_____Collection.ts
|___utils
|_____comparator
|_______Comparator.ts
|___errors
|_______BaseError.ts
|_______ArgumentNullError.ts
|_______....

Usage

import { LinkedList, DoubleLinkedList, Queue, Stack } from 'typedsa/ds';
import { Sorter } from 'typedsa/algs';
import { Comparator } from 'typedsa/utils';
import {
  BaseError,
  ArgumentNullError,
  IvalidOperationError,
} from 'typedsa/errors';

const linkedList = new LinkedList<string>();
linkedList.add('foo');
linkedList.add('bar');
linkedList.add('spam');

const stringComparator = new Comparator<string>((a: string, b: string) => {
  return a.length - b.length;
});

linkedList.sort(stringComparator);

const sortedAgain: string[] = Sorter.sort(
  linkedList.toArray(),
  SORTING_TYPES.MERGE_SORT,
  stringComparator
);

Contrubuting

Althow this project has been created mostly for studying purposes, I'd love some contrubutions. Just try to be consistent with the project structure, testing, and tsdocs conventions.

Testing

npm install

npm test
# or
npm run test:watch
# or
npm run test:coverage
0.0.6

4 years ago

0.0.2

4 years ago

0.0.1

4 years ago