ts-algo-lib
v1.0.6
Published
TypeScript Algorithm and Data Structures Library
Downloads
428
Maintainers
Readme
TS Algorithm and Data Structures Library
This library provides implementations of various data structures and algorithms in TypeScript.
Installation
- Clone the repository:
git clone https://github.com/Slygriyrsk/ts-algo-lib.git
cd ts-algo-lib
- Install dependencies:
npm install
- Alternatively, you can install it directly from npm:
npm install ts-algo-lib
Available Data Structures
- Binary Search Tree
- Linked List
- Stack
- Queue
- Priority Queue
Usage
import { BinarySearchTree, LinkedList, Stack, Queue, PriorityQueue } from 'ts-algo-lib';
// Binary Search Tree
const bst = new BinarySearchTree<number>();
bst.insert(5);
bst.insert(3);
bst.insert(7);
console.log(bst.search(3)); // true
console.log(bst.search(6)); // false
// Linked List
const list = new LinkedList<number>();
list.append(1);
list.append(2);
list.append(3);
console.log(list.toString()); // "1,2,3"
// Stack
const stack = new Stack<number>();
stack.push(1);
stack.push(2);
stack.push(3);
console.log(stack.pop()); // 3
console.log(stack.peek()); // 2
// Queue
const queue = new Queue<string>();
queue.enqueue('a');
queue.enqueue('b');
queue.enqueue('c');
console.log(queue.dequeue()); // 'a'
console.log(queue.front()); // 'b'
// Priority Queue
const pq = new PriorityQueue<string>();
pq.enqueue('Low', 3);
pq.enqueue('High', 1);
pq.enqueue('Medium', 2);
console.log(pq.dequeue()); // 'High'
console.log(pq.front()); // 'Medium'
Running Tests
To run the test suite:
npm test
Running Demo
To run the demo script:
npm run demo
Building the Project
To compile the TypeScript code to JavaScript:
npm run build
The compiled output will be in the dist
directory.
Project Structure
ts-algo-lib/
├── src/
│ ├── interfaces/
│ │ └── Comparable.ts
| | └── Collection.ts
│ ├── trees/
│ │ ├── BinarySearchTree.ts
│ │ └── BinaryTreeNode.ts
│ ├── lists/
│ │ └── LinkedList.ts
│ ├── stack/
│ │ └── Stack.ts
│ ├── queue/
│ │ ├── Queue.ts
│ │ └── PriorityQueue.ts
│ ├── demo.ts
│ └── index.ts
├── tests/
│ ├── trees/
│ │ └── BinarySearchTree.test.ts
│ ├── lists/
│ │ └── LinkedList.test.ts
│ ├── stack/
│ │ └── Stack.test.ts
│ └── queue/
│ ├── Queue.test.ts
│ └── PriorityQueue.test.ts
├── package.json
├── tsconfig.json
├── jest.config.js
└── README.md
Contributing
Contributions are welcome! Please feel free to submit a Pull Request.