@delgadillox/ds-lib
v0.0.4
Published
Data structures in TypeScript (LinkedList, Trees, Graphs...).
Readme
@delgadillox/ds-lib
Minimal TypeScript data structures and helpers you can actually use in real code: Singly Linked List, Doubly Linked List, Stack, Queue, plus small algorithms (reverse list, cycle detection) and builders from arrays.
Install
npm i @delgadillox/ds-libQuick usage
import {
LinkedList, DoublyLinkedList, Stack, Queue,
reverseLinkedList, hasCycle,
buildLinkedListFromArray, buildQueueFromArray
} from '@delgadillox/ds-lib';
// Doubly Linked List
const dl = new DoublyLinkedList<number>();
dl.addFirst(2); dl.addLast(3); // [2, 3]
dl.removeFirst(); // 2
// Singly Linked List + algorithms
const ll = buildLinkedListFromArray([1,2,3]); // 1 -> 2 -> 3
reverseLinkedList(ll); // 3 -> 2 -> 1
hasCycle(ll); // false
// Stack / Queue
const s = new Stack<number>(); s.push(10); s.push(20); s.pop(); // 20
const q = buildQueueFromArray(['a','b']); q.dequeue(); // 'a'Big-O (core ops)
| Structure | Method | BIG O | | ------------------- | --------------------- | -------- | | LinkedList (singly) | addFirst / shift | O(1) | | LinkedList (singly) | addLast | O(1) | | LinkedList (singly) | removeLast (pop) | O(n) | | DoublyLinkedList | add/remove first/last | O(1) | | Stack (doble) | push/pop/peek | O(1) | | Queue (doble) | enqueue/dequeue/peek | O(1) |
Notes: singly removeLast is O(n) by design. Use DoublyLinkedList for O(1) head/tail removals.
Exports
LinkedList (singly), DoublyLinkedList
Stack, Queue
Algorithms: reverseLinkedList, reverseDoublyLinkedList, hasCycle, findCycleStart
Builders: buildLinkedListFromArray, buildDoublyLinkedListFromArray, buildStackFromArray, buildQueueFromArray
Roadmap
More data structures & algorithms are planned: Binary Search, Binary Tree/BST, Graphs, Sorting (merge/quick), BFS/DFS, shortest paths, and more list utilities.
Docs
Generated API docs (TypeDoc) live under packages/ds-lib/docs/ in this repo.
