deque-typed 2.4.5 → 2.5.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +6 -73
- package/dist/cjs/index.cjs +705 -122
- package/dist/cjs/index.cjs.map +1 -1
- package/dist/cjs-legacy/index.cjs +704 -121
- package/dist/cjs-legacy/index.cjs.map +1 -1
- package/dist/esm/index.mjs +705 -122
- package/dist/esm/index.mjs.map +1 -1
- package/dist/esm-legacy/index.mjs +704 -121
- package/dist/esm-legacy/index.mjs.map +1 -1
- package/dist/types/data-structures/base/index.d.ts +1 -0
- package/dist/types/data-structures/base/iterable-element-base.d.ts +1 -1
- package/dist/types/data-structures/base/iterable-entry-base.d.ts +8 -8
- package/dist/types/data-structures/base/linear-base.d.ts +3 -3
- package/dist/types/data-structures/binary-tree/avl-tree.d.ts +380 -51
- package/dist/types/data-structures/binary-tree/binary-indexed-tree.d.ts +487 -147
- package/dist/types/data-structures/binary-tree/binary-tree.d.ts +956 -80
- package/dist/types/data-structures/binary-tree/bst.d.ts +816 -29
- package/dist/types/data-structures/binary-tree/red-black-tree.d.ts +610 -31
- package/dist/types/data-structures/binary-tree/segment-tree.d.ts +326 -135
- package/dist/types/data-structures/binary-tree/tree-map.d.ts +3781 -6
- package/dist/types/data-structures/binary-tree/tree-multi-map.d.ts +3607 -201
- package/dist/types/data-structures/binary-tree/tree-multi-set.d.ts +2874 -65
- package/dist/types/data-structures/binary-tree/tree-set.d.ts +3528 -6
- package/dist/types/data-structures/graph/abstract-graph.d.ts +4 -4
- package/dist/types/data-structures/graph/directed-graph.d.ts +429 -47
- package/dist/types/data-structures/graph/map-graph.d.ts +59 -1
- package/dist/types/data-structures/graph/undirected-graph.d.ts +393 -59
- package/dist/types/data-structures/hash/hash-map.d.ts +473 -89
- package/dist/types/data-structures/heap/heap.d.ts +581 -99
- package/dist/types/data-structures/heap/max-heap.d.ts +46 -0
- package/dist/types/data-structures/heap/min-heap.d.ts +59 -0
- package/dist/types/data-structures/linked-list/doubly-linked-list.d.ts +646 -47
- package/dist/types/data-structures/linked-list/singly-linked-list.d.ts +596 -68
- package/dist/types/data-structures/linked-list/skip-linked-list.d.ts +793 -12
- package/dist/types/data-structures/matrix/matrix.d.ts +499 -0
- package/dist/types/data-structures/priority-queue/max-priority-queue.d.ts +57 -0
- package/dist/types/data-structures/priority-queue/min-priority-queue.d.ts +60 -0
- package/dist/types/data-structures/priority-queue/priority-queue.d.ts +60 -0
- package/dist/types/data-structures/queue/deque.d.ts +593 -71
- package/dist/types/data-structures/queue/queue.d.ts +463 -42
- package/dist/types/data-structures/stack/stack.d.ts +384 -32
- package/dist/types/data-structures/trie/trie.d.ts +470 -48
- package/dist/types/interfaces/graph.d.ts +1 -1
- package/dist/types/types/common.d.ts +2 -2
- package/dist/types/types/data-structures/binary-tree/segment-tree.d.ts +1 -1
- package/dist/types/types/data-structures/heap/heap.d.ts +1 -0
- package/dist/types/types/data-structures/linked-list/skip-linked-list.d.ts +1 -4
- package/dist/types/types/data-structures/priority-queue/priority-queue.d.ts +1 -0
- package/dist/types/types/utils/validate-type.d.ts +4 -4
- package/dist/umd/deque-typed.js +702 -119
- package/dist/umd/deque-typed.js.map +1 -1
- package/dist/umd/deque-typed.min.js +1 -1
- package/dist/umd/deque-typed.min.js.map +1 -1
- package/package.json +2 -2
- package/src/data-structures/base/index.ts +1 -0
- package/src/data-structures/base/iterable-element-base.ts +4 -5
- package/src/data-structures/base/iterable-entry-base.ts +8 -8
- package/src/data-structures/base/linear-base.ts +3 -3
- package/src/data-structures/binary-tree/avl-tree.ts +386 -51
- package/src/data-structures/binary-tree/binary-indexed-tree.ts +596 -247
- package/src/data-structures/binary-tree/binary-tree.ts +956 -81
- package/src/data-structures/binary-tree/bst.ts +840 -35
- package/src/data-structures/binary-tree/red-black-tree.ts +689 -97
- package/src/data-structures/binary-tree/segment-tree.ts +498 -249
- package/src/data-structures/binary-tree/tree-map.ts +3784 -7
- package/src/data-structures/binary-tree/tree-multi-map.ts +3614 -211
- package/src/data-structures/binary-tree/tree-multi-set.ts +2874 -65
- package/src/data-structures/binary-tree/tree-set.ts +3531 -10
- package/src/data-structures/graph/abstract-graph.ts +4 -4
- package/src/data-structures/graph/directed-graph.ts +429 -47
- package/src/data-structures/graph/map-graph.ts +59 -1
- package/src/data-structures/graph/undirected-graph.ts +393 -59
- package/src/data-structures/hash/hash-map.ts +476 -92
- package/src/data-structures/heap/heap.ts +581 -99
- package/src/data-structures/heap/max-heap.ts +46 -0
- package/src/data-structures/heap/min-heap.ts +59 -0
- package/src/data-structures/linked-list/doubly-linked-list.ts +646 -47
- package/src/data-structures/linked-list/singly-linked-list.ts +596 -68
- package/src/data-structures/linked-list/skip-linked-list.ts +1067 -90
- package/src/data-structures/matrix/matrix.ts +584 -12
- package/src/data-structures/priority-queue/max-priority-queue.ts +57 -0
- package/src/data-structures/priority-queue/min-priority-queue.ts +60 -0
- package/src/data-structures/priority-queue/priority-queue.ts +60 -0
- package/src/data-structures/queue/deque.ts +592 -70
- package/src/data-structures/queue/queue.ts +463 -42
- package/src/data-structures/stack/stack.ts +384 -32
- package/src/data-structures/trie/trie.ts +470 -48
- package/src/interfaces/graph.ts +1 -1
- package/src/types/common.ts +2 -2
- package/src/types/data-structures/binary-tree/segment-tree.ts +1 -1
- package/src/types/data-structures/heap/heap.ts +1 -0
- package/src/types/data-structures/linked-list/skip-linked-list.ts +2 -1
- package/src/types/data-structures/priority-queue/priority-queue.ts +1 -0
- package/src/types/utils/validate-type.ts +4 -4
package/README.md
CHANGED
|
@@ -34,79 +34,6 @@ yarn add deque-typed
|
|
|
34
34
|
|
|
35
35
|
[//]: # (No deletion!!! Start of Example Replace Section)
|
|
36
36
|
|
|
37
|
-
### basic Deque creation and push/pop operations
|
|
38
|
-
```typescript
|
|
39
|
-
// Create a simple Deque with initial values
|
|
40
|
-
const deque = new Deque([1, 2, 3, 4, 5]);
|
|
41
|
-
|
|
42
|
-
// Verify the deque maintains insertion order
|
|
43
|
-
console.log([...deque]); // [1, 2, 3, 4, 5];
|
|
44
|
-
|
|
45
|
-
// Check length
|
|
46
|
-
console.log(deque.length); // 5;
|
|
47
|
-
|
|
48
|
-
// Push to the end
|
|
49
|
-
deque.push(6);
|
|
50
|
-
console.log(deque.length); // 6;
|
|
51
|
-
|
|
52
|
-
// Pop from the end
|
|
53
|
-
const last = deque.pop();
|
|
54
|
-
console.log(last); // 6;
|
|
55
|
-
```
|
|
56
|
-
|
|
57
|
-
### Deque shift and unshift operations
|
|
58
|
-
```typescript
|
|
59
|
-
const deque = new Deque<number>([20, 30, 40]);
|
|
60
|
-
|
|
61
|
-
// Unshift adds to the front
|
|
62
|
-
deque.unshift(10);
|
|
63
|
-
console.log([...deque]); // [10, 20, 30, 40];
|
|
64
|
-
|
|
65
|
-
// Shift removes from the front (O(1) complexity!)
|
|
66
|
-
const first = deque.shift();
|
|
67
|
-
console.log(first); // 10;
|
|
68
|
-
|
|
69
|
-
// Verify remaining elements
|
|
70
|
-
console.log([...deque]); // [20, 30, 40];
|
|
71
|
-
console.log(deque.length); // 3;
|
|
72
|
-
```
|
|
73
|
-
|
|
74
|
-
### Deque peek at both ends
|
|
75
|
-
```typescript
|
|
76
|
-
const deque = new Deque<number>([10, 20, 30, 40, 50]);
|
|
77
|
-
|
|
78
|
-
// Get first element without removing
|
|
79
|
-
const first = deque.at(0);
|
|
80
|
-
console.log(first); // 10;
|
|
81
|
-
|
|
82
|
-
// Get last element without removing
|
|
83
|
-
const last = deque.at(deque.length - 1);
|
|
84
|
-
console.log(last); // 50;
|
|
85
|
-
|
|
86
|
-
// Length unchanged
|
|
87
|
-
console.log(deque.length); // 5;
|
|
88
|
-
```
|
|
89
|
-
|
|
90
|
-
### Deque for...of iteration and reverse
|
|
91
|
-
```typescript
|
|
92
|
-
const deque = new Deque<string>(['A', 'B', 'C', 'D']);
|
|
93
|
-
|
|
94
|
-
// Iterate forward
|
|
95
|
-
const forward: string[] = [];
|
|
96
|
-
for (const item of deque) {
|
|
97
|
-
forward.push(item);
|
|
98
|
-
}
|
|
99
|
-
console.log(forward); // ['A', 'B', 'C', 'D'];
|
|
100
|
-
|
|
101
|
-
// Reverse the deque
|
|
102
|
-
deque.reverse();
|
|
103
|
-
const backward: string[] = [];
|
|
104
|
-
for (const item of deque) {
|
|
105
|
-
backward.push(item);
|
|
106
|
-
}
|
|
107
|
-
console.log(backward); // ['D', 'C', 'B', 'A'];
|
|
108
|
-
```
|
|
109
|
-
|
|
110
37
|
### Deque as sliding window for stream processing
|
|
111
38
|
```typescript
|
|
112
39
|
interface DataPoint {
|
|
@@ -160,6 +87,12 @@ yarn add deque-typed
|
|
|
160
87
|
console.log(dataWindow.length); // 3;
|
|
161
88
|
```
|
|
162
89
|
|
|
90
|
+
### Convert deque to array
|
|
91
|
+
```typescript
|
|
92
|
+
const dq = new Deque<number>([10, 20, 30]);
|
|
93
|
+
console.log(dq.toArray()); // [10, 20, 30];
|
|
94
|
+
```
|
|
95
|
+
|
|
163
96
|
[//]: # (No deletion!!! End of Example Replace Section)
|
|
164
97
|
|
|
165
98
|
|