queue-typed 2.4.0 → 2.4.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 (55) hide show
  1. package/dist/cjs/index.cjs +12 -0
  2. package/dist/cjs/index.cjs.map +1 -1
  3. package/dist/cjs-legacy/index.cjs +12 -0
  4. package/dist/cjs-legacy/index.cjs.map +1 -1
  5. package/dist/esm/index.mjs +12 -0
  6. package/dist/esm/index.mjs.map +1 -1
  7. package/dist/esm-legacy/index.mjs +12 -0
  8. package/dist/esm-legacy/index.mjs.map +1 -1
  9. package/dist/types/data-structures/base/linear-base.d.ts +6 -6
  10. package/dist/types/data-structures/binary-tree/binary-tree.d.ts +6 -6
  11. package/dist/types/data-structures/binary-tree/bst.d.ts +2 -1
  12. package/dist/types/data-structures/binary-tree/index.d.ts +3 -3
  13. package/dist/types/data-structures/binary-tree/red-black-tree.d.ts +150 -20
  14. package/dist/types/data-structures/binary-tree/tree-map.d.ts +188 -0
  15. package/dist/types/data-structures/binary-tree/tree-multi-map.d.ts +238 -147
  16. package/dist/types/data-structures/binary-tree/tree-multi-set.d.ts +270 -0
  17. package/dist/types/data-structures/binary-tree/tree-set.d.ts +181 -0
  18. package/dist/types/interfaces/binary-tree.d.ts +2 -2
  19. package/dist/types/types/data-structures/binary-tree/index.d.ts +3 -3
  20. package/dist/types/types/data-structures/binary-tree/tree-map.d.ts +33 -0
  21. package/dist/types/types/data-structures/binary-tree/tree-multi-set.d.ts +16 -0
  22. package/dist/types/types/data-structures/binary-tree/tree-set.d.ts +33 -0
  23. package/dist/umd/queue-typed.js +12 -0
  24. package/dist/umd/queue-typed.js.map +1 -1
  25. package/dist/umd/queue-typed.min.js +1 -1
  26. package/dist/umd/queue-typed.min.js.map +1 -1
  27. package/package.json +2 -2
  28. package/src/data-structures/base/linear-base.ts +2 -12
  29. package/src/data-structures/binary-tree/avl-tree.ts +1 -1
  30. package/src/data-structures/binary-tree/binary-tree.ts +45 -21
  31. package/src/data-structures/binary-tree/bst.ts +85 -10
  32. package/src/data-structures/binary-tree/index.ts +3 -3
  33. package/src/data-structures/binary-tree/red-black-tree.ts +568 -76
  34. package/src/data-structures/binary-tree/tree-map.ts +439 -0
  35. package/src/data-structures/binary-tree/tree-multi-map.ts +488 -325
  36. package/src/data-structures/binary-tree/tree-multi-set.ts +502 -0
  37. package/src/data-structures/binary-tree/tree-set.ts +407 -0
  38. package/src/data-structures/queue/deque.ts +10 -0
  39. package/src/interfaces/binary-tree.ts +2 -2
  40. package/src/types/data-structures/binary-tree/index.ts +3 -3
  41. package/src/types/data-structures/binary-tree/tree-map.ts +45 -0
  42. package/src/types/data-structures/binary-tree/tree-multi-set.ts +19 -0
  43. package/src/types/data-structures/binary-tree/tree-set.ts +39 -0
  44. package/dist/types/data-structures/binary-tree/avl-tree-counter.d.ts +0 -236
  45. package/dist/types/data-structures/binary-tree/avl-tree-multi-map.d.ts +0 -197
  46. package/dist/types/data-structures/binary-tree/tree-counter.d.ts +0 -243
  47. package/dist/types/types/data-structures/binary-tree/avl-tree-counter.d.ts +0 -2
  48. package/dist/types/types/data-structures/binary-tree/avl-tree-multi-map.d.ts +0 -2
  49. package/dist/types/types/data-structures/binary-tree/tree-counter.d.ts +0 -2
  50. package/src/data-structures/binary-tree/avl-tree-counter.ts +0 -539
  51. package/src/data-structures/binary-tree/avl-tree-multi-map.ts +0 -438
  52. package/src/data-structures/binary-tree/tree-counter.ts +0 -575
  53. package/src/types/data-structures/binary-tree/avl-tree-counter.ts +0 -3
  54. package/src/types/data-structures/binary-tree/avl-tree-multi-map.ts +0 -3
  55. package/src/types/data-structures/binary-tree/tree-counter.ts +0 -3
@@ -519,6 +519,12 @@ var LinearLinkedBase = class extends LinearBase {
519
519
  }
520
520
  return -1;
521
521
  }
522
+ /**
523
+ * Concatenate lists/elements preserving order.
524
+ * @param items - Elements or `LinearBase` instances.
525
+ * @returns New list with combined elements (`this` type).
526
+ * @remarks Time O(sum(length)), Space O(sum(length))
527
+ */
522
528
  concat(...items) {
523
529
  const newList = this.clone();
524
530
  for (const item of items) {
@@ -2332,6 +2338,12 @@ var Deque = class extends LinearBase {
2332
2338
  */
2333
2339
  _setBucketSize(size) {
2334
2340
  this._bucketSize = size;
2341
+ if (this._length === 0) {
2342
+ this._buckets = [new Array(this._bucketSize)];
2343
+ this._bucketCount = 1;
2344
+ this._bucketFirst = this._bucketLast = 0;
2345
+ this._firstInBucket = this._lastInBucket = this._bucketSize >> 1;
2346
+ }
2335
2347
  }
2336
2348
  /**
2337
2349
  * (Protected) Iterate elements from front to back.