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.
Files changed (94) hide show
  1. package/README.md +6 -73
  2. package/dist/cjs/index.cjs +705 -122
  3. package/dist/cjs/index.cjs.map +1 -1
  4. package/dist/cjs-legacy/index.cjs +704 -121
  5. package/dist/cjs-legacy/index.cjs.map +1 -1
  6. package/dist/esm/index.mjs +705 -122
  7. package/dist/esm/index.mjs.map +1 -1
  8. package/dist/esm-legacy/index.mjs +704 -121
  9. package/dist/esm-legacy/index.mjs.map +1 -1
  10. package/dist/types/data-structures/base/index.d.ts +1 -0
  11. package/dist/types/data-structures/base/iterable-element-base.d.ts +1 -1
  12. package/dist/types/data-structures/base/iterable-entry-base.d.ts +8 -8
  13. package/dist/types/data-structures/base/linear-base.d.ts +3 -3
  14. package/dist/types/data-structures/binary-tree/avl-tree.d.ts +380 -51
  15. package/dist/types/data-structures/binary-tree/binary-indexed-tree.d.ts +487 -147
  16. package/dist/types/data-structures/binary-tree/binary-tree.d.ts +956 -80
  17. package/dist/types/data-structures/binary-tree/bst.d.ts +816 -29
  18. package/dist/types/data-structures/binary-tree/red-black-tree.d.ts +610 -31
  19. package/dist/types/data-structures/binary-tree/segment-tree.d.ts +326 -135
  20. package/dist/types/data-structures/binary-tree/tree-map.d.ts +3781 -6
  21. package/dist/types/data-structures/binary-tree/tree-multi-map.d.ts +3607 -201
  22. package/dist/types/data-structures/binary-tree/tree-multi-set.d.ts +2874 -65
  23. package/dist/types/data-structures/binary-tree/tree-set.d.ts +3528 -6
  24. package/dist/types/data-structures/graph/abstract-graph.d.ts +4 -4
  25. package/dist/types/data-structures/graph/directed-graph.d.ts +429 -47
  26. package/dist/types/data-structures/graph/map-graph.d.ts +59 -1
  27. package/dist/types/data-structures/graph/undirected-graph.d.ts +393 -59
  28. package/dist/types/data-structures/hash/hash-map.d.ts +473 -89
  29. package/dist/types/data-structures/heap/heap.d.ts +581 -99
  30. package/dist/types/data-structures/heap/max-heap.d.ts +46 -0
  31. package/dist/types/data-structures/heap/min-heap.d.ts +59 -0
  32. package/dist/types/data-structures/linked-list/doubly-linked-list.d.ts +646 -47
  33. package/dist/types/data-structures/linked-list/singly-linked-list.d.ts +596 -68
  34. package/dist/types/data-structures/linked-list/skip-linked-list.d.ts +793 -12
  35. package/dist/types/data-structures/matrix/matrix.d.ts +499 -0
  36. package/dist/types/data-structures/priority-queue/max-priority-queue.d.ts +57 -0
  37. package/dist/types/data-structures/priority-queue/min-priority-queue.d.ts +60 -0
  38. package/dist/types/data-structures/priority-queue/priority-queue.d.ts +60 -0
  39. package/dist/types/data-structures/queue/deque.d.ts +593 -71
  40. package/dist/types/data-structures/queue/queue.d.ts +463 -42
  41. package/dist/types/data-structures/stack/stack.d.ts +384 -32
  42. package/dist/types/data-structures/trie/trie.d.ts +470 -48
  43. package/dist/types/interfaces/graph.d.ts +1 -1
  44. package/dist/types/types/common.d.ts +2 -2
  45. package/dist/types/types/data-structures/binary-tree/segment-tree.d.ts +1 -1
  46. package/dist/types/types/data-structures/heap/heap.d.ts +1 -0
  47. package/dist/types/types/data-structures/linked-list/skip-linked-list.d.ts +1 -4
  48. package/dist/types/types/data-structures/priority-queue/priority-queue.d.ts +1 -0
  49. package/dist/types/types/utils/validate-type.d.ts +4 -4
  50. package/dist/umd/deque-typed.js +702 -119
  51. package/dist/umd/deque-typed.js.map +1 -1
  52. package/dist/umd/deque-typed.min.js +1 -1
  53. package/dist/umd/deque-typed.min.js.map +1 -1
  54. package/package.json +2 -2
  55. package/src/data-structures/base/index.ts +1 -0
  56. package/src/data-structures/base/iterable-element-base.ts +4 -5
  57. package/src/data-structures/base/iterable-entry-base.ts +8 -8
  58. package/src/data-structures/base/linear-base.ts +3 -3
  59. package/src/data-structures/binary-tree/avl-tree.ts +386 -51
  60. package/src/data-structures/binary-tree/binary-indexed-tree.ts +596 -247
  61. package/src/data-structures/binary-tree/binary-tree.ts +956 -81
  62. package/src/data-structures/binary-tree/bst.ts +840 -35
  63. package/src/data-structures/binary-tree/red-black-tree.ts +689 -97
  64. package/src/data-structures/binary-tree/segment-tree.ts +498 -249
  65. package/src/data-structures/binary-tree/tree-map.ts +3784 -7
  66. package/src/data-structures/binary-tree/tree-multi-map.ts +3614 -211
  67. package/src/data-structures/binary-tree/tree-multi-set.ts +2874 -65
  68. package/src/data-structures/binary-tree/tree-set.ts +3531 -10
  69. package/src/data-structures/graph/abstract-graph.ts +4 -4
  70. package/src/data-structures/graph/directed-graph.ts +429 -47
  71. package/src/data-structures/graph/map-graph.ts +59 -1
  72. package/src/data-structures/graph/undirected-graph.ts +393 -59
  73. package/src/data-structures/hash/hash-map.ts +476 -92
  74. package/src/data-structures/heap/heap.ts +581 -99
  75. package/src/data-structures/heap/max-heap.ts +46 -0
  76. package/src/data-structures/heap/min-heap.ts +59 -0
  77. package/src/data-structures/linked-list/doubly-linked-list.ts +646 -47
  78. package/src/data-structures/linked-list/singly-linked-list.ts +596 -68
  79. package/src/data-structures/linked-list/skip-linked-list.ts +1067 -90
  80. package/src/data-structures/matrix/matrix.ts +584 -12
  81. package/src/data-structures/priority-queue/max-priority-queue.ts +57 -0
  82. package/src/data-structures/priority-queue/min-priority-queue.ts +60 -0
  83. package/src/data-structures/priority-queue/priority-queue.ts +60 -0
  84. package/src/data-structures/queue/deque.ts +592 -70
  85. package/src/data-structures/queue/queue.ts +463 -42
  86. package/src/data-structures/stack/stack.ts +384 -32
  87. package/src/data-structures/trie/trie.ts +470 -48
  88. package/src/interfaces/graph.ts +1 -1
  89. package/src/types/common.ts +2 -2
  90. package/src/types/data-structures/binary-tree/segment-tree.ts +1 -1
  91. package/src/types/data-structures/heap/heap.ts +1 -0
  92. package/src/types/data-structures/linked-list/skip-linked-list.ts +2 -1
  93. package/src/types/data-structures/priority-queue/priority-queue.ts +1 -0
  94. 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