directed-graph-typed 2.5.2 → 2.5.3

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 (59) hide show
  1. package/dist/cjs/index.cjs +212 -14
  2. package/dist/cjs/index.cjs.map +1 -1
  3. package/dist/cjs-legacy/index.cjs +212 -14
  4. package/dist/cjs-legacy/index.cjs.map +1 -1
  5. package/dist/esm/index.mjs +212 -14
  6. package/dist/esm/index.mjs.map +1 -1
  7. package/dist/esm-legacy/index.mjs +212 -14
  8. package/dist/esm-legacy/index.mjs.map +1 -1
  9. package/dist/types/data-structures/binary-tree/avl-tree.d.ts +50 -2
  10. package/dist/types/data-structures/binary-tree/binary-indexed-tree.d.ts +56 -0
  11. package/dist/types/data-structures/binary-tree/binary-tree.d.ts +116 -15
  12. package/dist/types/data-structures/binary-tree/bst.d.ts +99 -3
  13. package/dist/types/data-structures/binary-tree/red-black-tree.d.ts +79 -8
  14. package/dist/types/data-structures/binary-tree/segment-tree.d.ts +24 -0
  15. package/dist/types/data-structures/binary-tree/tree-map.d.ts +520 -1
  16. package/dist/types/data-structures/binary-tree/tree-multi-map.d.ts +489 -1
  17. package/dist/types/data-structures/binary-tree/tree-multi-set.d.ts +393 -1
  18. package/dist/types/data-structures/binary-tree/tree-set.d.ts +500 -1
  19. package/dist/types/data-structures/graph/directed-graph.d.ts +40 -0
  20. package/dist/types/data-structures/graph/undirected-graph.d.ts +36 -0
  21. package/dist/types/data-structures/hash/hash-map.d.ts +51 -6
  22. package/dist/types/data-structures/heap/heap.d.ts +98 -12
  23. package/dist/types/data-structures/linked-list/doubly-linked-list.d.ts +75 -0
  24. package/dist/types/data-structures/linked-list/singly-linked-list.d.ts +61 -1
  25. package/dist/types/data-structures/linked-list/skip-linked-list.d.ts +72 -0
  26. package/dist/types/data-structures/matrix/matrix.d.ts +32 -0
  27. package/dist/types/data-structures/queue/deque.d.ts +82 -0
  28. package/dist/types/data-structures/queue/queue.d.ts +61 -0
  29. package/dist/types/data-structures/stack/stack.d.ts +42 -2
  30. package/dist/types/data-structures/trie/trie.d.ts +48 -0
  31. package/dist/types/interfaces/binary-tree.d.ts +2 -3
  32. package/dist/umd/directed-graph-typed.js +212 -14
  33. package/dist/umd/directed-graph-typed.js.map +1 -1
  34. package/dist/umd/directed-graph-typed.min.js +1 -1
  35. package/dist/umd/directed-graph-typed.min.js.map +1 -1
  36. package/package.json +2 -2
  37. package/src/data-structures/binary-tree/avl-tree.ts +52 -5
  38. package/src/data-structures/binary-tree/binary-indexed-tree.ts +56 -0
  39. package/src/data-structures/binary-tree/binary-tree.ts +167 -81
  40. package/src/data-structures/binary-tree/bst.ts +101 -7
  41. package/src/data-structures/binary-tree/red-black-tree.ts +82 -15
  42. package/src/data-structures/binary-tree/segment-tree.ts +24 -0
  43. package/src/data-structures/binary-tree/tree-map.ts +540 -3
  44. package/src/data-structures/binary-tree/tree-multi-map.ts +490 -2
  45. package/src/data-structures/binary-tree/tree-multi-set.ts +393 -1
  46. package/src/data-structures/binary-tree/tree-set.ts +520 -3
  47. package/src/data-structures/graph/directed-graph.ts +41 -1
  48. package/src/data-structures/graph/undirected-graph.ts +37 -1
  49. package/src/data-structures/hash/hash-map.ts +67 -12
  50. package/src/data-structures/heap/heap.ts +107 -19
  51. package/src/data-structures/linked-list/doubly-linked-list.ts +88 -0
  52. package/src/data-structures/linked-list/singly-linked-list.ts +61 -1
  53. package/src/data-structures/linked-list/skip-linked-list.ts +72 -0
  54. package/src/data-structures/matrix/matrix.ts +32 -0
  55. package/src/data-structures/queue/deque.ts +85 -0
  56. package/src/data-structures/queue/queue.ts +73 -0
  57. package/src/data-structures/stack/stack.ts +45 -5
  58. package/src/data-structures/trie/trie.ts +48 -0
  59. package/src/interfaces/binary-tree.ts +1 -9
@@ -766,6 +766,10 @@ var directedGraphTyped = (() => {
766
766
 
767
767
 
768
768
 
769
+
770
+
771
+
772
+
769
773
 
770
774
 
771
775
 
@@ -820,7 +824,7 @@ var directedGraphTyped = (() => {
820
824
  }
821
825
  /**
822
826
  * Insert an element.
823
- * @remarks Time O(1) amortized, Space O(1)
827
+ * @remarks Time O(log N) amortized, Space O(1)
824
828
  * @param element - Element to insert.
825
829
  * @returns True.
826
830
 
@@ -853,6 +857,10 @@ var directedGraphTyped = (() => {
853
857
 
854
858
 
855
859
 
860
+
861
+
862
+
863
+
856
864
 
857
865
 
858
866
 
@@ -910,6 +918,10 @@ var directedGraphTyped = (() => {
910
918
 
911
919
 
912
920
 
921
+
922
+
923
+
924
+
913
925
 
914
926
 
915
927
 
@@ -974,6 +986,37 @@ var directedGraphTyped = (() => {
974
986
 
975
987
 
976
988
 
989
+
990
+
991
+
992
+ * @example
993
+ * // Heap with custom comparator (MaxHeap behavior)
994
+ * interface Task {
995
+ * id: number;
996
+ * priority: number;
997
+ * name: string;
998
+ * }
999
+ *
1000
+ * // Custom comparator for max heap behavior (higher priority first)
1001
+ * const tasks: Task[] = [
1002
+ * { id: 1, priority: 5, name: 'Email' },
1003
+ * { id: 2, priority: 3, name: 'Chat' },
1004
+ * { id: 3, priority: 8, name: 'Alert' }
1005
+ * ];
1006
+ *
1007
+ * const maxHeap = new Heap(tasks, {
1008
+ * comparator: (a: Task, b: Task) => b.priority - a.priority
1009
+ * });
1010
+ *
1011
+ * console.log(maxHeap.size); // 3;
1012
+ *
1013
+ * // Peek returns highest priority task
1014
+ * const topTask = maxHeap.peek();
1015
+ * console.log(topTask?.priority); // 8;
1016
+ * console.log(topTask?.name); // 'Alert';
1017
+ */
1018
+ /**
1019
+ * @deprecated Use `pop` instead. Will be removed in a future major version.
977
1020
  * @example
978
1021
  * // Heap with custom comparator (MaxHeap behavior)
979
1022
  * interface Task {
@@ -1001,6 +1044,14 @@ var directedGraphTyped = (() => {
1001
1044
  * console.log(topTask?.name); // 'Alert';
1002
1045
  */
1003
1046
  poll() {
1047
+ return this.pop();
1048
+ }
1049
+ /**
1050
+ * Remove and return the top element (min or max depending on comparator).
1051
+ * @remarks Time O(log N) amortized, Space O(1)
1052
+ * @returns The removed top element, or undefined if empty.
1053
+ */
1054
+ pop() {
1004
1055
  if (this.elements.length === 0) return;
1005
1056
  const value = this.elements[0];
1006
1057
  const last = this.elements.pop();
@@ -1044,6 +1095,10 @@ var directedGraphTyped = (() => {
1044
1095
 
1045
1096
 
1046
1097
 
1098
+
1099
+
1100
+
1101
+
1047
1102
 
1048
1103
 
1049
1104
 
@@ -1144,6 +1199,10 @@ var directedGraphTyped = (() => {
1144
1199
 
1145
1200
 
1146
1201
 
1202
+
1203
+
1204
+
1205
+
1147
1206
 
1148
1207
 
1149
1208
 
@@ -1191,6 +1250,10 @@ var directedGraphTyped = (() => {
1191
1250
 
1192
1251
 
1193
1252
 
1253
+
1254
+
1255
+
1256
+
1194
1257
 
1195
1258
 
1196
1259
 
@@ -1205,16 +1268,6 @@ var directedGraphTyped = (() => {
1205
1268
  clear() {
1206
1269
  this._elements = [];
1207
1270
  }
1208
- /**
1209
- * Replace the backing array and rebuild the heap.
1210
- * @remarks Time O(N), Space O(N)
1211
- * @param elements - Iterable used to refill the heap.
1212
- * @returns Array of per-node results from fixing steps.
1213
- */
1214
- refill(elements) {
1215
- this._elements = Array.from(elements);
1216
- return this.fix();
1217
- }
1218
1271
  /**
1219
1272
  * Check if an equal element exists in the heap.
1220
1273
  * @remarks Time O(N), Space O(1)
@@ -1241,6 +1294,10 @@ var directedGraphTyped = (() => {
1241
1294
 
1242
1295
 
1243
1296
 
1297
+
1298
+
1299
+
1300
+
1244
1301
 
1245
1302
 
1246
1303
 
@@ -1288,6 +1345,10 @@ var directedGraphTyped = (() => {
1288
1345
 
1289
1346
 
1290
1347
 
1348
+
1349
+
1350
+
1351
+
1291
1352
 
1292
1353
 
1293
1354
 
@@ -1309,7 +1370,7 @@ var directedGraphTyped = (() => {
1309
1370
  }
1310
1371
  if (index < 0) return false;
1311
1372
  if (index === 0) {
1312
- this.poll();
1373
+ this.pop();
1313
1374
  } else if (index === this.elements.length - 1) {
1314
1375
  this.elements.pop();
1315
1376
  } else {
@@ -1319,13 +1380,19 @@ var directedGraphTyped = (() => {
1319
1380
  }
1320
1381
  return true;
1321
1382
  }
1383
+ /**
1384
+ * @deprecated Use `deleteWhere` instead. Will be removed in a future major version.
1385
+ */
1386
+ deleteBy(predicate) {
1387
+ return this.deleteWhere(predicate);
1388
+ }
1322
1389
  /**
1323
1390
  * Delete the first element that matches a predicate.
1324
1391
  * @remarks Time O(N), Space O(1)
1325
1392
  * @param predicate - Function (element, index, heap) → boolean.
1326
1393
  * @returns True if an element was removed.
1327
1394
  */
1328
- deleteBy(predicate) {
1395
+ deleteWhere(predicate) {
1329
1396
  let idx = -1;
1330
1397
  for (let i = 0; i < this.elements.length; i++) {
1331
1398
  if (predicate(this.elements[i], i, this)) {
@@ -1335,7 +1402,7 @@ var directedGraphTyped = (() => {
1335
1402
  }
1336
1403
  if (idx < 0) return false;
1337
1404
  if (idx === 0) {
1338
- this.poll();
1405
+ this.pop();
1339
1406
  } else if (idx === this.elements.length - 1) {
1340
1407
  this.elements.pop();
1341
1408
  } else {
@@ -1381,6 +1448,10 @@ var directedGraphTyped = (() => {
1381
1448
 
1382
1449
 
1383
1450
 
1451
+
1452
+
1453
+
1454
+
1384
1455
 
1385
1456
 
1386
1457
 
@@ -1461,6 +1532,10 @@ var directedGraphTyped = (() => {
1461
1532
 
1462
1533
 
1463
1534
 
1535
+
1536
+
1537
+
1538
+
1464
1539
 
1465
1540
 
1466
1541
 
@@ -1514,6 +1589,10 @@ var directedGraphTyped = (() => {
1514
1589
 
1515
1590
 
1516
1591
 
1592
+
1593
+
1594
+
1595
+
1517
1596
 
1518
1597
 
1519
1598
 
@@ -1566,6 +1645,10 @@ var directedGraphTyped = (() => {
1566
1645
 
1567
1646
 
1568
1647
 
1648
+
1649
+
1650
+
1651
+
1569
1652
 
1570
1653
 
1571
1654
 
@@ -1625,6 +1708,10 @@ var directedGraphTyped = (() => {
1625
1708
 
1626
1709
 
1627
1710
 
1711
+
1712
+
1713
+
1714
+
1628
1715
 
1629
1716
 
1630
1717
 
@@ -1826,6 +1913,10 @@ var directedGraphTyped = (() => {
1826
1913
 
1827
1914
 
1828
1915
 
1916
+
1917
+
1918
+
1919
+
1829
1920
 
1830
1921
 
1831
1922
 
@@ -1876,6 +1967,10 @@ var directedGraphTyped = (() => {
1876
1967
 
1877
1968
 
1878
1969
 
1970
+
1971
+
1972
+
1973
+
1879
1974
 
1880
1975
 
1881
1976
 
@@ -1890,6 +1985,14 @@ var directedGraphTyped = (() => {
1890
1985
  get first() {
1891
1986
  return this.length > 0 ? this.elements[this._offset] : void 0;
1892
1987
  }
1988
+ /**
1989
+ * Peek at the front element without removing it (alias for `first`).
1990
+ * @remarks Time O(1), Space O(1)
1991
+ * @returns Front element or undefined.
1992
+ */
1993
+ peek() {
1994
+ return this.first;
1995
+ }
1893
1996
  /**
1894
1997
  * Get the last element (back) without removing it.
1895
1998
  * @remarks Time O(1), Space O(1)
@@ -1942,6 +2045,10 @@ var directedGraphTyped = (() => {
1942
2045
 
1943
2046
 
1944
2047
 
2048
+
2049
+
2050
+
2051
+
1945
2052
 
1946
2053
 
1947
2054
 
@@ -2004,6 +2111,10 @@ var directedGraphTyped = (() => {
2004
2111
 
2005
2112
 
2006
2113
 
2114
+
2115
+
2116
+
2117
+
2007
2118
 
2008
2119
 
2009
2120
 
@@ -2073,6 +2184,10 @@ var directedGraphTyped = (() => {
2073
2184
 
2074
2185
 
2075
2186
 
2187
+
2188
+
2189
+
2190
+
2076
2191
 
2077
2192
 
2078
2193
 
@@ -2132,6 +2247,10 @@ var directedGraphTyped = (() => {
2132
2247
 
2133
2248
 
2134
2249
 
2250
+
2251
+
2252
+
2253
+
2135
2254
 
2136
2255
 
2137
2256
 
@@ -2184,6 +2303,10 @@ var directedGraphTyped = (() => {
2184
2303
 
2185
2304
 
2186
2305
 
2306
+
2307
+
2308
+
2309
+
2187
2310
 
2188
2311
 
2189
2312
 
@@ -2235,6 +2358,21 @@ var directedGraphTyped = (() => {
2235
2358
  this._elements[this._offset + index] = newElement;
2236
2359
  return true;
2237
2360
  }
2361
+ /**
2362
+ * Delete the first element that satisfies a predicate.
2363
+ * @remarks Time O(N), Space O(N)
2364
+ * @param predicate - Function (value, index, queue) → boolean to decide deletion.
2365
+ * @returns True if a match was removed.
2366
+ */
2367
+ deleteWhere(predicate) {
2368
+ for (let i = 0; i < this.length; i++) {
2369
+ if (predicate(this._elements[this._offset + i], i, this)) {
2370
+ this.deleteAt(i);
2371
+ return true;
2372
+ }
2373
+ }
2374
+ return false;
2375
+ }
2238
2376
  /**
2239
2377
  * Reverse the queue in-place by compacting then reversing.
2240
2378
  * @remarks Time O(N), Space O(N)
@@ -2277,6 +2415,10 @@ var directedGraphTyped = (() => {
2277
2415
 
2278
2416
 
2279
2417
 
2418
+
2419
+
2420
+
2421
+
2280
2422
 
2281
2423
 
2282
2424
 
@@ -2323,6 +2465,10 @@ var directedGraphTyped = (() => {
2323
2465
 
2324
2466
 
2325
2467
 
2468
+
2469
+
2470
+
2471
+
2326
2472
 
2327
2473
 
2328
2474
 
@@ -2392,6 +2538,10 @@ var directedGraphTyped = (() => {
2392
2538
 
2393
2539
 
2394
2540
 
2541
+
2542
+
2543
+
2544
+
2395
2545
 
2396
2546
 
2397
2547
 
@@ -2445,6 +2595,10 @@ var directedGraphTyped = (() => {
2445
2595
 
2446
2596
 
2447
2597
 
2598
+
2599
+
2600
+
2601
+
2448
2602
 
2449
2603
 
2450
2604
 
@@ -2502,6 +2656,10 @@ var directedGraphTyped = (() => {
2502
2656
 
2503
2657
 
2504
2658
 
2659
+
2660
+
2661
+
2662
+
2505
2663
 
2506
2664
 
2507
2665
 
@@ -3632,6 +3790,10 @@ var directedGraphTyped = (() => {
3632
3790
 
3633
3791
 
3634
3792
 
3793
+
3794
+
3795
+
3796
+
3635
3797
 
3636
3798
 
3637
3799
 
@@ -3720,6 +3882,10 @@ var directedGraphTyped = (() => {
3720
3882
 
3721
3883
 
3722
3884
 
3885
+
3886
+
3887
+
3888
+
3723
3889
 
3724
3890
 
3725
3891
 
@@ -3806,6 +3972,10 @@ var directedGraphTyped = (() => {
3806
3972
 
3807
3973
 
3808
3974
 
3975
+
3976
+
3977
+
3978
+
3809
3979
 
3810
3980
 
3811
3981
 
@@ -3883,6 +4053,10 @@ var directedGraphTyped = (() => {
3883
4053
 
3884
4054
 
3885
4055
 
4056
+
4057
+
4058
+
4059
+
3886
4060
 
3887
4061
 
3888
4062
 
@@ -3937,6 +4111,10 @@ var directedGraphTyped = (() => {
3937
4111
 
3938
4112
 
3939
4113
 
4114
+
4115
+
4116
+
4117
+
3940
4118
 
3941
4119
 
3942
4120
 
@@ -4044,6 +4222,10 @@ var directedGraphTyped = (() => {
4044
4222
 
4045
4223
 
4046
4224
 
4225
+
4226
+
4227
+
4228
+
4047
4229
 
4048
4230
 
4049
4231
 
@@ -4132,6 +4314,10 @@ var directedGraphTyped = (() => {
4132
4314
 
4133
4315
 
4134
4316
 
4317
+
4318
+
4319
+
4320
+
4135
4321
 
4136
4322
 
4137
4323
 
@@ -4182,6 +4368,10 @@ var directedGraphTyped = (() => {
4182
4368
 
4183
4369
 
4184
4370
 
4371
+
4372
+
4373
+
4374
+
4185
4375
 
4186
4376
 
4187
4377
 
@@ -4285,6 +4475,10 @@ var directedGraphTyped = (() => {
4285
4475
 
4286
4476
 
4287
4477
 
4478
+
4479
+
4480
+
4481
+
4288
4482
 
4289
4483
 
4290
4484
 
@@ -4391,6 +4585,10 @@ var directedGraphTyped = (() => {
4391
4585
 
4392
4586
 
4393
4587
 
4588
+
4589
+
4590
+
4591
+
4394
4592
 
4395
4593
 
4396
4594