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.
Files changed (76) hide show
  1. package/README.md +15 -73
  2. package/dist/cjs/index.cjs +393 -126
  3. package/dist/cjs/index.cjs.map +1 -1
  4. package/dist/cjs-legacy/index.cjs +392 -125
  5. package/dist/cjs-legacy/index.cjs.map +1 -1
  6. package/dist/esm/index.mjs +393 -126
  7. package/dist/esm/index.mjs.map +1 -1
  8. package/dist/esm-legacy/index.mjs +392 -125
  9. package/dist/esm-legacy/index.mjs.map +1 -1
  10. package/dist/types/data-structures/base/iterable-element-base.d.ts +1 -1
  11. package/dist/types/data-structures/binary-tree/avl-tree.d.ts +128 -51
  12. package/dist/types/data-structures/binary-tree/binary-indexed-tree.d.ts +210 -164
  13. package/dist/types/data-structures/binary-tree/binary-tree.d.ts +429 -78
  14. package/dist/types/data-structures/binary-tree/bst.d.ts +311 -28
  15. package/dist/types/data-structures/binary-tree/red-black-tree.d.ts +212 -32
  16. package/dist/types/data-structures/binary-tree/segment-tree.d.ts +218 -152
  17. package/dist/types/data-structures/binary-tree/tree-map.d.ts +1281 -5
  18. package/dist/types/data-structures/binary-tree/tree-multi-map.d.ts +1087 -201
  19. package/dist/types/data-structures/binary-tree/tree-multi-set.d.ts +858 -65
  20. package/dist/types/data-structures/binary-tree/tree-set.d.ts +1133 -5
  21. package/dist/types/data-structures/graph/directed-graph.d.ts +219 -47
  22. package/dist/types/data-structures/graph/map-graph.d.ts +59 -1
  23. package/dist/types/data-structures/graph/undirected-graph.d.ts +204 -59
  24. package/dist/types/data-structures/hash/hash-map.d.ts +230 -77
  25. package/dist/types/data-structures/heap/heap.d.ts +287 -99
  26. package/dist/types/data-structures/heap/max-heap.d.ts +46 -0
  27. package/dist/types/data-structures/heap/min-heap.d.ts +59 -0
  28. package/dist/types/data-structures/linked-list/doubly-linked-list.d.ts +286 -44
  29. package/dist/types/data-structures/linked-list/singly-linked-list.d.ts +278 -65
  30. package/dist/types/data-structures/linked-list/skip-linked-list.d.ts +415 -12
  31. package/dist/types/data-structures/matrix/matrix.d.ts +331 -0
  32. package/dist/types/data-structures/priority-queue/max-priority-queue.d.ts +57 -0
  33. package/dist/types/data-structures/priority-queue/min-priority-queue.d.ts +60 -0
  34. package/dist/types/data-structures/priority-queue/priority-queue.d.ts +60 -0
  35. package/dist/types/data-structures/queue/deque.d.ts +272 -65
  36. package/dist/types/data-structures/queue/queue.d.ts +211 -42
  37. package/dist/types/data-structures/stack/stack.d.ts +174 -32
  38. package/dist/types/data-structures/trie/trie.d.ts +213 -43
  39. package/dist/types/types/data-structures/binary-tree/segment-tree.d.ts +1 -1
  40. package/dist/types/types/data-structures/linked-list/skip-linked-list.d.ts +1 -4
  41. package/dist/umd/singly-linked-list-typed.js +390 -123
  42. package/dist/umd/singly-linked-list-typed.js.map +1 -1
  43. package/dist/umd/singly-linked-list-typed.min.js +1 -1
  44. package/dist/umd/singly-linked-list-typed.min.js.map +1 -1
  45. package/package.json +2 -2
  46. package/src/data-structures/base/iterable-element-base.ts +4 -5
  47. package/src/data-structures/binary-tree/avl-tree.ts +134 -51
  48. package/src/data-structures/binary-tree/binary-indexed-tree.ts +302 -247
  49. package/src/data-structures/binary-tree/binary-tree.ts +429 -79
  50. package/src/data-structures/binary-tree/bst.ts +335 -34
  51. package/src/data-structures/binary-tree/red-black-tree.ts +290 -97
  52. package/src/data-structures/binary-tree/segment-tree.ts +372 -248
  53. package/src/data-structures/binary-tree/tree-map.ts +1284 -6
  54. package/src/data-structures/binary-tree/tree-multi-map.ts +1094 -211
  55. package/src/data-structures/binary-tree/tree-multi-set.ts +858 -65
  56. package/src/data-structures/binary-tree/tree-set.ts +1136 -9
  57. package/src/data-structures/graph/directed-graph.ts +219 -47
  58. package/src/data-structures/graph/map-graph.ts +59 -1
  59. package/src/data-structures/graph/undirected-graph.ts +204 -59
  60. package/src/data-structures/hash/hash-map.ts +230 -77
  61. package/src/data-structures/heap/heap.ts +287 -99
  62. package/src/data-structures/heap/max-heap.ts +46 -0
  63. package/src/data-structures/heap/min-heap.ts +59 -0
  64. package/src/data-structures/linked-list/doubly-linked-list.ts +286 -44
  65. package/src/data-structures/linked-list/singly-linked-list.ts +278 -65
  66. package/src/data-structures/linked-list/skip-linked-list.ts +689 -90
  67. package/src/data-structures/matrix/matrix.ts +416 -12
  68. package/src/data-structures/priority-queue/max-priority-queue.ts +57 -0
  69. package/src/data-structures/priority-queue/min-priority-queue.ts +60 -0
  70. package/src/data-structures/priority-queue/priority-queue.ts +60 -0
  71. package/src/data-structures/queue/deque.ts +272 -65
  72. package/src/data-structures/queue/queue.ts +211 -42
  73. package/src/data-structures/stack/stack.ts +174 -32
  74. package/src/data-structures/trie/trie.ts +213 -43
  75. package/src/types/data-structures/binary-tree/segment-tree.ts +1 -1
  76. 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