1.0.6 • Published 9 months ago
ts-algo-lib v1.0.6
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.