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 +14 -50
  2. package/dist/cjs/index.cjs +1538 -294
  3. package/dist/cjs/index.cjs.map +1 -1
  4. package/dist/cjs-legacy/index.cjs +1544 -291
  5. package/dist/cjs-legacy/index.cjs.map +1 -1
  6. package/dist/esm/index.mjs +1538 -294
  7. package/dist/esm/index.mjs.map +1 -1
  8. package/dist/esm-legacy/index.mjs +1544 -291
  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/linked-list-typed.js +1541 -289
  42. package/dist/umd/linked-list-typed.js.map +1 -1
  43. package/dist/umd/linked-list-typed.min.js +1 -1
  44. package/dist/umd/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,56 +34,6 @@ yarn add linked-list-typed
34
34
 
35
35
  [//]: # (No deletion!!! Start of Example Replace Section)
36
36
 
37
- ### basic DoublyLinkedList creation and push operation
38
- ```typescript
39
- // Create a simple DoublyLinkedList with initial values
40
- const list = new DoublyLinkedList([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
- ### DoublyLinkedList pop and shift operations
55
- ```typescript
56
- const list = new DoublyLinkedList<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
- ### DoublyLinkedList for...of iteration and map operation
72
- ```typescript
73
- const list = new DoublyLinkedList<number>([1, 2, 3, 4, 5]);
74
-
75
- // Iterate through list
76
- const doubled = list.map(value => value * 2);
77
- console.log(doubled.length); // 5;
78
-
79
- // Use for...of loop
80
- const result: number[] = [];
81
- for (const item of list) {
82
- result.push(item);
83
- }
84
- console.log(result); // [1, 2, 3, 4, 5];
85
- ```
86
-
87
37
  ### Browser history
88
38
  ```typescript
89
39
  const browserHistory = new DoublyLinkedList<string>();
@@ -138,6 +88,20 @@ yarn add linked-list-typed
138
88
  console.log(foundEntry?.value); // 'Bob';
139
89
  ```
140
90
 
91
+ ### Find first matching element
92
+ ```typescript
93
+ const list = new DoublyLinkedList<number>([5, 10, 15, 20]);
94
+ console.log(list.find(n => n >= 12)); // 15;
95
+ ```
96
+
97
+ ### Iterate over elements
98
+ ```typescript
99
+ const list = new DoublyLinkedList<number>([1, 2, 3]);
100
+ const sum: number[] = [];
101
+ list.forEach(n => sum.push(n));
102
+ console.log(sum); // [1, 2, 3];
103
+ ```
104
+
141
105
  [//]: # (No deletion!!! End of Example Replace Section)
142
106
 
143
107