singly-linked-list-typed 2.4.5 → 2.5.0
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 +15 -73
- package/dist/cjs/index.cjs +393 -126
- package/dist/cjs/index.cjs.map +1 -1
- package/dist/cjs-legacy/index.cjs +392 -125
- package/dist/cjs-legacy/index.cjs.map +1 -1
- package/dist/esm/index.mjs +393 -126
- package/dist/esm/index.mjs.map +1 -1
- package/dist/esm-legacy/index.mjs +392 -125
- package/dist/esm-legacy/index.mjs.map +1 -1
- package/dist/types/data-structures/base/iterable-element-base.d.ts +1 -1
- package/dist/types/data-structures/binary-tree/avl-tree.d.ts +128 -51
- package/dist/types/data-structures/binary-tree/binary-indexed-tree.d.ts +210 -164
- package/dist/types/data-structures/binary-tree/binary-tree.d.ts +429 -78
- package/dist/types/data-structures/binary-tree/bst.d.ts +311 -28
- package/dist/types/data-structures/binary-tree/red-black-tree.d.ts +212 -32
- package/dist/types/data-structures/binary-tree/segment-tree.d.ts +218 -152
- package/dist/types/data-structures/binary-tree/tree-map.d.ts +1281 -5
- package/dist/types/data-structures/binary-tree/tree-multi-map.d.ts +1087 -201
- package/dist/types/data-structures/binary-tree/tree-multi-set.d.ts +858 -65
- package/dist/types/data-structures/binary-tree/tree-set.d.ts +1133 -5
- package/dist/types/data-structures/graph/directed-graph.d.ts +219 -47
- package/dist/types/data-structures/graph/map-graph.d.ts +59 -1
- package/dist/types/data-structures/graph/undirected-graph.d.ts +204 -59
- package/dist/types/data-structures/hash/hash-map.d.ts +230 -77
- package/dist/types/data-structures/heap/heap.d.ts +287 -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 +286 -44
- package/dist/types/data-structures/linked-list/singly-linked-list.d.ts +278 -65
- package/dist/types/data-structures/linked-list/skip-linked-list.d.ts +415 -12
- package/dist/types/data-structures/matrix/matrix.d.ts +331 -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 +272 -65
- package/dist/types/data-structures/queue/queue.d.ts +211 -42
- package/dist/types/data-structures/stack/stack.d.ts +174 -32
- package/dist/types/data-structures/trie/trie.d.ts +213 -43
- package/dist/types/types/data-structures/binary-tree/segment-tree.d.ts +1 -1
- package/dist/types/types/data-structures/linked-list/skip-linked-list.d.ts +1 -4
- package/dist/umd/singly-linked-list-typed.js +390 -123
- package/dist/umd/singly-linked-list-typed.js.map +1 -1
- package/dist/umd/singly-linked-list-typed.min.js +1 -1
- package/dist/umd/singly-linked-list-typed.min.js.map +1 -1
- package/package.json +2 -2
- package/src/data-structures/base/iterable-element-base.ts +4 -5
- package/src/data-structures/binary-tree/avl-tree.ts +134 -51
- package/src/data-structures/binary-tree/binary-indexed-tree.ts +302 -247
- package/src/data-structures/binary-tree/binary-tree.ts +429 -79
- package/src/data-structures/binary-tree/bst.ts +335 -34
- package/src/data-structures/binary-tree/red-black-tree.ts +290 -97
- package/src/data-structures/binary-tree/segment-tree.ts +372 -248
- package/src/data-structures/binary-tree/tree-map.ts +1284 -6
- package/src/data-structures/binary-tree/tree-multi-map.ts +1094 -211
- package/src/data-structures/binary-tree/tree-multi-set.ts +858 -65
- package/src/data-structures/binary-tree/tree-set.ts +1136 -9
- package/src/data-structures/graph/directed-graph.ts +219 -47
- package/src/data-structures/graph/map-graph.ts +59 -1
- package/src/data-structures/graph/undirected-graph.ts +204 -59
- package/src/data-structures/hash/hash-map.ts +230 -77
- package/src/data-structures/heap/heap.ts +287 -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 +286 -44
- package/src/data-structures/linked-list/singly-linked-list.ts +278 -65
- package/src/data-structures/linked-list/skip-linked-list.ts +689 -90
- package/src/data-structures/matrix/matrix.ts +416 -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 +272 -65
- package/src/data-structures/queue/queue.ts +211 -42
- package/src/data-structures/stack/stack.ts +174 -32
- package/src/data-structures/trie/trie.ts +213 -43
- package/src/types/data-structures/binary-tree/segment-tree.ts +1 -1
- package/src/types/data-structures/linked-list/skip-linked-list.ts +2 -1
package/README.md
CHANGED
|
@@ -34,79 +34,6 @@ yarn add singly-linked-list-typed
|
|
|
34
34
|
|
|
35
35
|
[//]: # (No deletion!!! Start of Example Replace Section)
|
|
36
36
|
|
|
37
|
-
### basic SinglyLinkedList creation and push operation
|
|
38
|
-
```typescript
|
|
39
|
-
// Create a simple SinglyLinkedList with initial values
|
|
40
|
-
const list = new SinglyLinkedList([1, 2, 3, 4, 5]);
|
|
41
|
-
|
|
42
|
-
// Verify the list maintains insertion order
|
|
43
|
-
console.log([...list]); // [1, 2, 3, 4, 5];
|
|
44
|
-
|
|
45
|
-
// Check length
|
|
46
|
-
console.log(list.length); // 5;
|
|
47
|
-
|
|
48
|
-
// Push a new element to the end
|
|
49
|
-
list.push(6);
|
|
50
|
-
console.log(list.length); // 6;
|
|
51
|
-
console.log([...list]); // [1, 2, 3, 4, 5, 6];
|
|
52
|
-
```
|
|
53
|
-
|
|
54
|
-
### SinglyLinkedList pop and shift operations
|
|
55
|
-
```typescript
|
|
56
|
-
const list = new SinglyLinkedList<number>([10, 20, 30, 40, 50]);
|
|
57
|
-
|
|
58
|
-
// Pop removes from the end
|
|
59
|
-
const last = list.pop();
|
|
60
|
-
console.log(last); // 50;
|
|
61
|
-
|
|
62
|
-
// Shift removes from the beginning
|
|
63
|
-
const first = list.shift();
|
|
64
|
-
console.log(first); // 10;
|
|
65
|
-
|
|
66
|
-
// Verify remaining elements
|
|
67
|
-
console.log([...list]); // [20, 30, 40];
|
|
68
|
-
console.log(list.length); // 3;
|
|
69
|
-
```
|
|
70
|
-
|
|
71
|
-
### SinglyLinkedList unshift and forward traversal
|
|
72
|
-
```typescript
|
|
73
|
-
const list = new SinglyLinkedList<number>([20, 30, 40]);
|
|
74
|
-
|
|
75
|
-
// Unshift adds to the beginning
|
|
76
|
-
list.unshift(10);
|
|
77
|
-
console.log([...list]); // [10, 20, 30, 40];
|
|
78
|
-
|
|
79
|
-
// Access elements (forward traversal only for singly linked)
|
|
80
|
-
const second = list.at(1);
|
|
81
|
-
console.log(second); // 20;
|
|
82
|
-
|
|
83
|
-
// SinglyLinkedList allows forward iteration only
|
|
84
|
-
const elements: number[] = [];
|
|
85
|
-
for (const item of list) {
|
|
86
|
-
elements.push(item);
|
|
87
|
-
}
|
|
88
|
-
console.log(elements); // [10, 20, 30, 40];
|
|
89
|
-
|
|
90
|
-
console.log(list.length); // 4;
|
|
91
|
-
```
|
|
92
|
-
|
|
93
|
-
### SinglyLinkedList filter and map operations
|
|
94
|
-
```typescript
|
|
95
|
-
const list = new SinglyLinkedList<number>([1, 2, 3, 4, 5]);
|
|
96
|
-
|
|
97
|
-
// Filter even numbers
|
|
98
|
-
const filtered = list.filter(value => value % 2 === 0);
|
|
99
|
-
console.log(filtered.length); // 2;
|
|
100
|
-
|
|
101
|
-
// Map to double values
|
|
102
|
-
const doubled = list.map(value => value * 2);
|
|
103
|
-
console.log(doubled.length); // 5;
|
|
104
|
-
|
|
105
|
-
// Use reduce to sum
|
|
106
|
-
const sum = list.reduce((acc, value) => acc + value, 0);
|
|
107
|
-
console.log(sum); // 15;
|
|
108
|
-
```
|
|
109
|
-
|
|
110
37
|
### SinglyLinkedList for sequentially processed data stream
|
|
111
38
|
```typescript
|
|
112
39
|
interface LogEntry {
|
|
@@ -228,6 +155,21 @@ yarn add singly-linked-list-typed
|
|
|
228
155
|
console.log(editor.getText()); // 'Haello';
|
|
229
156
|
```
|
|
230
157
|
|
|
158
|
+
### Find first matching element
|
|
159
|
+
```typescript
|
|
160
|
+
const list = new SinglyLinkedList<number>([1, 2, 3, 4, 5]);
|
|
161
|
+
console.log(list.find(n => n > 3)); // 4;
|
|
162
|
+
console.log(list.find(n => n > 10)); // undefined;
|
|
163
|
+
```
|
|
164
|
+
|
|
165
|
+
### Iterate over elements
|
|
166
|
+
```typescript
|
|
167
|
+
const list = new SinglyLinkedList<number>([10, 20, 30]);
|
|
168
|
+
const result: number[] = [];
|
|
169
|
+
list.forEach(n => result.push(n));
|
|
170
|
+
console.log(result); // [10, 20, 30];
|
|
171
|
+
```
|
|
172
|
+
|
|
231
173
|
[//]: # (No deletion!!! End of Example Replace Section)
|
|
232
174
|
|
|
233
175
|
|