@blackglory/structures 0.14.6 → 0.14.8

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 (60) hide show
  1. package/README.md +1 -2
  2. package/lib/async-generator-emitter.js +2 -5
  3. package/lib/async-generator-emitter.js.map +1 -1
  4. package/lib/big-map.js +1 -3
  5. package/lib/big-map.js.map +1 -1
  6. package/lib/big-set.js +1 -3
  7. package/lib/big-set.js.map +1 -1
  8. package/lib/bit-set.js +7 -9
  9. package/lib/bit-set.js.map +1 -1
  10. package/lib/box.js +1 -0
  11. package/lib/box.js.map +1 -1
  12. package/lib/disjoint-set.js +2 -4
  13. package/lib/disjoint-set.js.map +1 -1
  14. package/lib/dynamic-typed-array.js +5 -1
  15. package/lib/dynamic-typed-array.js.map +1 -1
  16. package/lib/emitter.js +3 -7
  17. package/lib/emitter.js.map +1 -1
  18. package/lib/expirable-map.js +9 -15
  19. package/lib/expirable-map.js.map +1 -1
  20. package/lib/generator-emitter.js +2 -5
  21. package/lib/generator-emitter.js.map +1 -1
  22. package/lib/hash-map.js +2 -1
  23. package/lib/hash-map.js.map +1 -1
  24. package/lib/hash-set.d.ts +1 -0
  25. package/lib/hash-set.js +5 -1
  26. package/lib/hash-set.js.map +1 -1
  27. package/lib/lru-map.js +2 -1
  28. package/lib/lru-map.js.map +1 -1
  29. package/lib/queue.js +1 -3
  30. package/lib/queue.js.map +1 -1
  31. package/lib/radix-tree.js +3 -4
  32. package/lib/radix-tree.js.map +1 -1
  33. package/lib/sorted-set.js +1 -0
  34. package/lib/sorted-set.js.map +1 -1
  35. package/lib/sparse-map.js +6 -8
  36. package/lib/sparse-map.js.map +1 -1
  37. package/lib/sparse-set.js +5 -4
  38. package/lib/sparse-set.js.map +1 -1
  39. package/lib/string-radix-tree.js +3 -4
  40. package/lib/string-radix-tree.js.map +1 -1
  41. package/lib/string-trie-map.js +3 -4
  42. package/lib/string-trie-map.js.map +1 -1
  43. package/lib/tlru-map.js +6 -6
  44. package/lib/tlru-map.js.map +1 -1
  45. package/lib/trie-map.js +3 -4
  46. package/lib/trie-map.js.map +1 -1
  47. package/lib/typed-bit-set.js +7 -8
  48. package/lib/typed-bit-set.js.map +1 -1
  49. package/lib/typed-sparse-map.js +6 -5
  50. package/lib/typed-sparse-map.js.map +1 -1
  51. package/lib/typed-sparse-set.js +10 -5
  52. package/lib/typed-sparse-set.js.map +1 -1
  53. package/lib/utils/skip-list.js +10 -8
  54. package/lib/utils/skip-list.js.map +1 -1
  55. package/package.json +2 -1
  56. package/src/hash-set.ts +5 -1
  57. package/src/sparse-map.ts +3 -4
  58. package/src/sparse-set.ts +3 -5
  59. package/src/typed-sparse-map.ts +3 -3
  60. package/src/typed-sparse-set.ts +8 -6
package/lib/sparse-map.js CHANGED
@@ -1,9 +1,7 @@
1
1
  export class SparseMap {
2
- constructor() {
3
- this.keyToIndex = [];
4
- this.indexToKey = [];
5
- this.indexToValue = [];
6
- }
2
+ keyToIndex = [];
3
+ indexToKey = [];
4
+ indexToValue = [];
7
5
  get [Symbol.toStringTag]() {
8
6
  return this.constructor.name;
9
7
  }
@@ -28,7 +26,7 @@ export class SparseMap {
28
26
  return this.keyToIndex[key];
29
27
  }
30
28
  has(key) {
31
- return key in this.keyToIndex;
29
+ return this.keyToIndex[key] !== undefined;
32
30
  }
33
31
  get(key) {
34
32
  if (this.has(key)) {
@@ -56,14 +54,14 @@ export class SparseMap {
56
54
  const lastKey = this.indexToKey.pop();
57
55
  const lastValue = this.indexToValue.pop();
58
56
  if (key === lastKey) {
59
- delete this.keyToIndex[key];
57
+ this.keyToIndex[key] = undefined;
60
58
  }
61
59
  else {
62
60
  const index = this.keyToIndex[key];
63
61
  this.indexToKey[index] = lastKey;
64
62
  this.indexToValue[index] = lastValue;
65
63
  this.keyToIndex[lastKey] = index;
66
- delete this.keyToIndex[key];
64
+ this.keyToIndex[key] = undefined;
67
65
  }
68
66
  }
69
67
  }
@@ -1 +1 @@
1
- {"version":3,"file":"sparse-map.js","sourceRoot":"","sources":["../src/sparse-map.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sparse-map.js","sourceRoot":"","sources":["../src/sparse-map.ts"],"names":[],"mappings":"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"}
package/lib/sparse-set.js CHANGED
@@ -1,4 +1,6 @@
1
1
  export class SparseSet {
2
+ indexToValue = [];
3
+ valueToIndex;
2
4
  get [Symbol.toStringTag]() {
3
5
  return this.constructor.name;
4
6
  }
@@ -9,7 +11,6 @@ export class SparseSet {
9
11
  return this.indexToValue.length;
10
12
  }
11
13
  constructor(array = []) {
12
- this.indexToValue = [];
13
14
  const valueToIndex = [];
14
15
  if (array.length > 0) {
15
16
  for (const [index, value] of array.entries()) {
@@ -22,7 +23,7 @@ export class SparseSet {
22
23
  return this.indexToValue[Symbol.iterator]();
23
24
  }
24
25
  has(value) {
25
- return value in this.valueToIndex;
26
+ return this.valueToIndex[value] !== undefined;
26
27
  }
27
28
  add(value) {
28
29
  if (!this.has(value)) {
@@ -35,13 +36,13 @@ export class SparseSet {
35
36
  if (this.has(value)) {
36
37
  const lastValue = this.indexToValue.pop();
37
38
  if (value === lastValue) {
38
- delete this.valueToIndex[value];
39
+ this.valueToIndex[value] = undefined;
39
40
  }
40
41
  else {
41
42
  const index = this.valueToIndex[value];
42
43
  this.indexToValue[index] = lastValue;
43
44
  this.valueToIndex[lastValue] = index;
44
- delete this.valueToIndex[value];
45
+ this.valueToIndex[value] = undefined;
45
46
  }
46
47
  return true;
47
48
  }
@@ -1 +1 @@
1
- {"version":3,"file":"sparse-set.js","sourceRoot":"","sources":["../src/sparse-set.ts"],"names":[],"mappings":"AAAA,MAAM,OAAO,SAAS;IAIpB,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC;QACtB,OAAO,IAAI,CAAC,WAAW,CAAC,IAAI,CAAA;IAC9B,CAAC;IAED,CAAC,MAAM,CAAC,QAAQ,CAAC;QACf,OAAO,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAA;IAC7C,CAAC;IAED,IAAI,IAAI;QACN,OAAO,IAAI,CAAC,YAAY,CAAC,MAAM,CAAA;IACjC,CAAC;IAED,YAAY,QAAkB,EAAE;QAfxB,iBAAY,GAAa,EAAE,CAAA;QAgBjC,MAAM,YAAY,GAA8B,EAAE,CAAA;QAClD,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACrB,KAAK,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,KAAK,CAAC,OAAO,EAAE,EAAE,CAAC;gBAC7C,YAAY,CAAC,KAAK,CAAC,GAAG,KAAK,CAAA;YAC7B,CAAC;QACH,CAAC;QAED,IAAI,CAAC,YAAY,GAAG,YAAY,CAAA;IAClC,CAAC;IAED,MAAM;QACJ,OAAO,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAA;IAC7C,CAAC;IAED,GAAG,CAAC,KAAa;QAEf,OAAO,KAAK,IAAI,IAAI,CAAC,YAAY,CAAA;IACnC,CAAC;IAED,GAAG,CAAC,KAAa;QACf,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;YACrB,MAAM,KAAK,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,CAAA;YACtC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;YAC7B,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,GAAG,KAAK,CAAA;QAClC,CAAC;IACH,CAAC;IAED,MAAM,CAAC,KAAa;QAClB,IAAI,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;YACpB,MAAM,SAAS,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,EAAG,CAAA;YAC1C,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;gBACxB,OAAO,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAA;YACjC,CAAC;iBAAM,CAAC;gBACN,MAAM,KAAK,GAAG,IAAI,CAAC,YAAY,CAAC,KAAK,CAAE,CAAA;gBACvC,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,GAAG,SAAS,CAAA;gBACpC,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,GAAG,KAAK,CAAA;gBAEpC,OAAO,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAA;YACjC,CAAC;YACD,OAAO,IAAI,CAAA;QACb,CAAC;aAAM,CAAC;YACN,OAAO,KAAK,CAAA;QACd,CAAC;IACH,CAAC;IAED,KAAK;QACH,IAAI,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,CAAA;QAC5B,IAAI,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,CAAA;IAC9B,CAAC;IAED,KAAK;QACH,MAAM,KAAK,GAAG,IAAI,SAAS,EAAE,CAAA;QAE7B,KAAK,CAAC,YAAY,GAAG,CAAC,GAAG,IAAI,CAAC,YAAY,CAAC,CAAA;QAC3C,KAAK,CAAC,YAAY,GAAG,CAAC,GAAG,IAAI,CAAC,YAAY,CAAC,CAAA;QAE3C,OAAO,KAAK,CAAA;IACd,CAAC;CACF"}
1
+ {"version":3,"file":"sparse-set.js","sourceRoot":"","sources":["../src/sparse-set.ts"],"names":[],"mappings":"AAAA,MAAM,OAAO,SAAS;IACZ,YAAY,GAAa,EAAE,CAAA;IAC3B,YAAY,CAA2B;IAE/C,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC;QACtB,OAAO,IAAI,CAAC,WAAW,CAAC,IAAI,CAAA;IAC9B,CAAC;IAED,CAAC,MAAM,CAAC,QAAQ,CAAC;QACf,OAAO,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAA;IAC7C,CAAC;IAED,IAAI,IAAI;QACN,OAAO,IAAI,CAAC,YAAY,CAAC,MAAM,CAAA;IACjC,CAAC;IAED,YAAY,QAAkB,EAAE;QAC9B,MAAM,YAAY,GAA8B,EAAE,CAAA;QAClD,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACrB,KAAK,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,KAAK,CAAC,OAAO,EAAE,EAAE,CAAC;gBAC7C,YAAY,CAAC,KAAK,CAAC,GAAG,KAAK,CAAA;YAC7B,CAAC;QACH,CAAC;QAED,IAAI,CAAC,YAAY,GAAG,YAAY,CAAA;IAClC,CAAC;IAED,MAAM;QACJ,OAAO,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAA;IAC7C,CAAC;IAED,GAAG,CAAC,KAAa;QACf,OAAO,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,KAAK,SAAS,CAAA;IAC/C,CAAC;IAED,GAAG,CAAC,KAAa;QACf,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;YACrB,MAAM,KAAK,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,CAAA;YACtC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;YAC7B,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,GAAG,KAAK,CAAA;QAClC,CAAC;IACH,CAAC;IAED,MAAM,CAAC,KAAa;QAClB,IAAI,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;YACpB,MAAM,SAAS,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,EAAG,CAAA;YAC1C,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;gBACxB,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,GAAG,SAAS,CAAA;YACtC,CAAC;iBAAM,CAAC;gBACN,MAAM,KAAK,GAAG,IAAI,CAAC,YAAY,CAAC,KAAK,CAAE,CAAA;gBACvC,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,GAAG,SAAS,CAAA;gBACpC,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,GAAG,KAAK,CAAA;gBACpC,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,GAAG,SAAS,CAAA;YACtC,CAAC;YACD,OAAO,IAAI,CAAA;QACb,CAAC;aAAM,CAAC;YACN,OAAO,KAAK,CAAA;QACd,CAAC;IACH,CAAC;IAED,KAAK;QACH,IAAI,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,CAAA;QAC5B,IAAI,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,CAAA;IAC9B,CAAC;IAED,KAAK;QACH,MAAM,KAAK,GAAG,IAAI,SAAS,EAAE,CAAA;QAE7B,KAAK,CAAC,YAAY,GAAG,CAAC,GAAG,IAAI,CAAC,YAAY,CAAC,CAAA;QAC3C,KAAK,CAAC,YAAY,GAAG,CAAC,GAAG,IAAI,CAAC,YAAY,CAAC,CAAA;QAE3C,OAAO,KAAK,CAAA;IACd,CAAC;CACF"}
@@ -1,15 +1,14 @@
1
1
  import { toArray, first, map, find } from 'iterable-operator';
2
2
  import { isntUndefined } from 'extra-utils';
3
3
  class TreeNode {
4
+ value;
5
+ children = new Map();
4
6
  constructor(value) {
5
7
  this.value = value;
6
- this.children = new Map();
7
8
  }
8
9
  }
9
10
  export class StringRadixTree {
10
- constructor() {
11
- this.root = new TreeNode();
12
- }
11
+ root = new TreeNode();
13
12
  get [Symbol.toStringTag]() {
14
13
  return this.constructor.name;
15
14
  }
@@ -1 +1 @@
1
- {"version":3,"file":"string-radix-tree.js","sourceRoot":"","sources":["../src/string-radix-tree.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"string-radix-tree.js","sourceRoot":"","sources":["../src/string-radix-tree.ts"],"names":[],"mappings":"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"}
@@ -1,15 +1,14 @@
1
1
  import { zip, toArray, map } from 'iterable-operator';
2
2
  import { isntUndefined } from 'extra-utils';
3
3
  class TrieNode {
4
+ value;
5
+ children = new Map();
4
6
  constructor(value) {
5
7
  this.value = value;
6
- this.children = new Map();
7
8
  }
8
9
  }
9
10
  export class StringTrieMap {
10
- constructor() {
11
- this.root = new TrieNode();
12
- }
11
+ root = new TrieNode();
13
12
  get [Symbol.toStringTag]() {
14
13
  return this.constructor.name;
15
14
  }
@@ -1 +1 @@
1
- {"version":3,"file":"string-trie-map.js","sourceRoot":"","sources":["../src/string-trie-map.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"string-trie-map.js","sourceRoot":"","sources":["../src/string-trie-map.ts"],"names":[],"mappings":"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"}
package/lib/tlru-map.js CHANGED
@@ -2,6 +2,10 @@ import { assert } from '@blackglory/errors';
2
2
  import { first } from 'iterable-operator';
3
3
  import { setSchedule } from 'extra-timers';
4
4
  export class TLRUMap {
5
+ limit;
6
+ map = new Map();
7
+ cancelClearTimeout;
8
+ itemMetadataSortedByExpirationTime = [];
5
9
  get [Symbol.toStringTag]() {
6
10
  return this.constructor.name;
7
11
  }
@@ -9,8 +13,6 @@ export class TLRUMap {
9
13
  return this.map.size;
10
14
  }
11
15
  constructor(limit) {
12
- this.map = new Map();
13
- this.itemMetadataSortedByExpirationTime = [];
14
16
  assert(Number.isInteger(limit), 'The parameter limit must be an integer');
15
17
  assert(limit > 0, 'The parameter limit must be a positive value');
16
18
  this.limit = limit;
@@ -55,9 +57,8 @@ export class TLRUMap {
55
57
  return result;
56
58
  }
57
59
  clear() {
58
- var _a;
59
60
  this.map.clear();
60
- (_a = this.cancelClearTimeout) === null || _a === void 0 ? void 0 : _a.call(this);
61
+ this.cancelClearTimeout?.();
61
62
  this.itemMetadataSortedByExpirationTime = [];
62
63
  }
63
64
  updateItem(key, value) {
@@ -97,8 +98,7 @@ export class TLRUMap {
97
98
  expiredItemKeys.forEach(x => this.map.delete(x.key));
98
99
  }
99
100
  rescheduleClearTimeout() {
100
- var _a;
101
- (_a = this.cancelClearTimeout) === null || _a === void 0 ? void 0 : _a.call(this);
101
+ this.cancelClearTimeout?.();
102
102
  if (this.itemMetadataSortedByExpirationTime.length > 0) {
103
103
  const item = this.itemMetadataSortedByExpirationTime[0];
104
104
  if (Number.isFinite(item.expirationTime)) {
@@ -1 +1 @@
1
- {"version":3,"file":"tlru-map.js","sourceRoot":"","sources":["../src/tlru-map.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tlru-map.js","sourceRoot":"","sources":["../src/tlru-map.ts"],"names":[],"mappings":"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"}
package/lib/trie-map.js CHANGED
@@ -1,15 +1,14 @@
1
1
  import { zip, toArray, map } from 'iterable-operator';
2
2
  import { isntUndefined } from 'extra-utils';
3
3
  class TrieNode {
4
+ value;
5
+ children = new Map();
4
6
  constructor(value) {
5
7
  this.value = value;
6
- this.children = new Map();
7
8
  }
8
9
  }
9
10
  export class TrieMap {
10
- constructor() {
11
- this.root = new TrieNode();
12
- }
11
+ root = new TrieNode();
13
12
  get [Symbol.toStringTag]() {
14
13
  return this.constructor.name;
15
14
  }
@@ -1 +1 @@
1
- {"version":3,"file":"trie-map.js","sourceRoot":"","sources":["../src/trie-map.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"trie-map.js","sourceRoot":"","sources":["../src/trie-map.ts"],"names":[],"mappings":"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"}
@@ -1,10 +1,12 @@
1
1
  import { assert } from '@blackglory/errors';
2
2
  import { trailingZeros } from "./utils/trailing-zeros.js";
3
3
  export class TypedBitSet {
4
+ array;
5
+ bitsPerElement;
6
+ length = 0;
7
+ _size = 0;
4
8
  constructor(array) {
5
9
  this.array = array;
6
- this.length = 0;
7
- this._size = 0;
8
10
  const bitsPerElement = array.BYTES_PER_ELEMENT * 8;
9
11
  assert(Number.isInteger(bitsPerElement), 'The parameter bitsPerElement must be an integer');
10
12
  assert(bitsPerElement > 0, 'The parameter bitsPerElement must be greater than 0');
@@ -49,18 +51,16 @@ export class TypedBitSet {
49
51
  return result;
50
52
  }
51
53
  has(value) {
52
- var _a;
53
54
  const [index, mask] = this.getPosition(value);
54
- return (((_a = this.array.get(index)) !== null && _a !== void 0 ? _a : 0) & mask) === mask;
55
+ return ((this.array.get(index) ?? 0) & mask) === mask;
55
56
  }
56
57
  add(value) {
57
- var _a;
58
58
  assert(value >= 0, 'value must be greater than or equal to 0');
59
59
  if (value >= this.length) {
60
60
  this.length = value + 1;
61
61
  }
62
62
  const [index, mask] = this.getPosition(value);
63
- const element = (_a = this.array.get(index)) !== null && _a !== void 0 ? _a : 0;
63
+ const element = this.array.get(index) ?? 0;
64
64
  this.array.set(index, element | mask);
65
65
  const added = (element & mask) !== mask;
66
66
  if (added) {
@@ -69,9 +69,8 @@ export class TypedBitSet {
69
69
  return added;
70
70
  }
71
71
  delete(value) {
72
- var _a;
73
72
  const [index, mask] = this.getPosition(value);
74
- const element = ((_a = this.array.get(index)) !== null && _a !== void 0 ? _a : 0);
73
+ const element = (this.array.get(index) ?? 0);
75
74
  this.array.set(index, element & ~mask);
76
75
  const deleted = (element & mask) === mask;
77
76
  if (deleted) {
@@ -1 +1 @@
1
- {"version":3,"file":"typed-bit-set.js","sourceRoot":"","sources":["../src/typed-bit-set.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"typed-bit-set.js","sourceRoot":"","sources":["../src/typed-bit-set.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,8 @@
1
1
  import { assert } from '@blackglory/errors';
2
2
  export class TypedSparseMap {
3
+ keyToIndex = [];
4
+ indexToKey = [];
5
+ indexToValue;
3
6
  get [Symbol.toStringTag]() {
4
7
  return this.constructor.name;
5
8
  }
@@ -10,8 +13,6 @@ export class TypedSparseMap {
10
13
  return this.indexToValue.internalTypedArray;
11
14
  }
12
15
  constructor(array) {
13
- this.keyToIndex = [];
14
- this.indexToKey = [];
15
16
  assert(array.length === 0, 'array should be empty');
16
17
  this.indexToValue = array;
17
18
  }
@@ -35,7 +36,7 @@ export class TypedSparseMap {
35
36
  return this.keyToIndex[key];
36
37
  }
37
38
  has(key) {
38
- return key in this.keyToIndex;
39
+ return this.keyToIndex[key] !== undefined;
39
40
  }
40
41
  get(key) {
41
42
  if (this.has(key)) {
@@ -63,14 +64,14 @@ export class TypedSparseMap {
63
64
  const lastKey = this.indexToKey.pop();
64
65
  const lastValue = this.indexToValue.pop();
65
66
  if (key === lastKey) {
66
- delete this.keyToIndex[key];
67
+ this.keyToIndex[key] = undefined;
67
68
  }
68
69
  else {
69
70
  const index = this.keyToIndex[key];
70
71
  this.indexToKey[index] = lastKey;
71
72
  this.indexToValue.internalTypedArray[index] = lastValue;
72
73
  this.keyToIndex[lastKey] = index;
73
- delete this.keyToIndex[key];
74
+ this.keyToIndex[key] = undefined;
74
75
  }
75
76
  }
76
77
  }
@@ -1 +1 @@
1
- {"version":3,"file":"typed-sparse-map.js","sourceRoot":"","sources":["../src/typed-sparse-map.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"typed-sparse-map.js","sourceRoot":"","sources":["../src/typed-sparse-map.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,6 @@
1
1
  export class TypedSparseSet {
2
+ valueToIndex;
3
+ indexToValue;
2
4
  constructor(array) {
3
5
  const valueToIndex = [];
4
6
  if (array.length > 0) {
@@ -24,8 +26,7 @@ export class TypedSparseSet {
24
26
  }
25
27
  }
26
28
  has(value) {
27
- const index = this.valueToIndex[value];
28
- return this.indexToValue.internalTypedArray[index] === value;
29
+ return this.valueToIndex[value] !== undefined;
29
30
  }
30
31
  add(value) {
31
32
  if (!this.has(value)) {
@@ -35,12 +36,16 @@ export class TypedSparseSet {
35
36
  }
36
37
  }
37
38
  delete(value) {
38
- const index = this.valueToIndex[value];
39
- if (this.indexToValue.internalTypedArray[index] === value) {
39
+ if (this.has(value)) {
40
40
  const lastValue = this.indexToValue.pop();
41
- if (value !== lastValue) {
41
+ if (value === lastValue) {
42
+ this.valueToIndex[value] = undefined;
43
+ }
44
+ else {
45
+ const index = this.valueToIndex[value];
42
46
  this.indexToValue.internalTypedArray[index] = lastValue;
43
47
  this.valueToIndex[lastValue] = index;
48
+ this.valueToIndex[value] = undefined;
44
49
  }
45
50
  return true;
46
51
  }
@@ -1 +1 @@
1
- {"version":3,"file":"typed-sparse-set.js","sourceRoot":"","sources":["../src/typed-sparse-set.ts"],"names":[],"mappings":"AAGA,MAAM,OAAO,cAAc;IAMzB,YAAY,KAA2B;QACrC,MAAM,YAAY,GAA8B,EAAE,CAAA;QAClD,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACrB,KAAK,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,KAAK,CAAC,kBAAkB,CAAC,OAAO,EAAE,EAAE,CAAC;gBAChE,YAAY,CAAC,KAAK,CAAC,GAAG,KAAK,CAAA;YAC7B,CAAC;QACH,CAAC;QAED,IAAI,CAAC,YAAY,GAAG,KAAK,CAAA;QACzB,IAAI,CAAC,YAAY,GAAG,YAAY,CAAA;IAClC,CAAC;IAED,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC;QACtB,OAAO,IAAI,CAAC,WAAW,CAAC,IAAI,CAAA;IAC9B,CAAC;IAED,CAAC,MAAM,CAAC,QAAQ,CAAC;QACf,OAAO,IAAI,CAAC,MAAM,EAAE,CAAA;IACtB,CAAC;IAED,IAAI,IAAI;QACN,OAAO,IAAI,CAAC,YAAY,CAAC,MAAM,CAAA;IACjC,CAAC;IAED,CAAE,MAAM;QACN,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YAClD,MAAM,IAAI,CAAC,YAAY,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAA;QAC/C,CAAC;IACH,CAAC;IAED,GAAG,CAAC,KAAa;QACf,MAAM,KAAK,GAAG,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAA;QACtC,OAAO,IAAI,CAAC,YAAY,CAAC,kBAAkB,CAAC,KAAM,CAAC,KAAK,KAAK,CAAA;IAC/D,CAAC;IAED,GAAG,CAAC,KAAa;QACf,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;YACrB,MAAM,KAAK,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,CAAA;YACtC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;YAC7B,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,GAAG,KAAK,CAAA;QAClC,CAAC;IACH,CAAC;IAED,MAAM,CAAC,KAAa;QAClB,MAAM,KAAK,GAAG,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAA;QACtC,IAAI,IAAI,CAAC,YAAY,CAAC,kBAAkB,CAAC,KAAM,CAAC,KAAK,KAAK,EAAE,CAAC;YAC3D,MAAM,SAAS,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,EAAG,CAAA;YAC1C,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;gBACxB,IAAI,CAAC,YAAY,CAAC,kBAAkB,CAAC,KAAM,CAAC,GAAG,SAAS,CAAA;gBACxD,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,GAAG,KAAK,CAAA;YACtC,CAAC;YACD,OAAO,IAAI,CAAA;QACb,CAAC;aAAM,CAAC;YACN,OAAO,KAAK,CAAA;QACd,CAAC;IACH,CAAC;IAED,KAAK;QACH,IAAI,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,CAAA;QAC5B,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,CAAA;IAC3B,CAAC;CACF"}
1
+ {"version":3,"file":"typed-sparse-set.js","sourceRoot":"","sources":["../src/typed-sparse-set.ts"],"names":[],"mappings":"AAGA,MAAM,OAAO,cAAc;IAGjB,YAAY,CAA2B;IACvC,YAAY,CAAsB;IAE1C,YAAY,KAA2B;QACrC,MAAM,YAAY,GAA8B,EAAE,CAAA;QAClD,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACrB,KAAK,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,KAAK,CAAC,kBAAkB,CAAC,OAAO,EAAE,EAAE,CAAC;gBAChE,YAAY,CAAC,KAAK,CAAC,GAAG,KAAK,CAAA;YAC7B,CAAC;QACH,CAAC;QAED,IAAI,CAAC,YAAY,GAAG,KAAK,CAAA;QACzB,IAAI,CAAC,YAAY,GAAG,YAAY,CAAA;IAClC,CAAC;IAED,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC;QACtB,OAAO,IAAI,CAAC,WAAW,CAAC,IAAI,CAAA;IAC9B,CAAC;IAED,CAAC,MAAM,CAAC,QAAQ,CAAC;QACf,OAAO,IAAI,CAAC,MAAM,EAAE,CAAA;IACtB,CAAC;IAED,IAAI,IAAI;QACN,OAAO,IAAI,CAAC,YAAY,CAAC,MAAM,CAAA;IACjC,CAAC;IAED,CAAE,MAAM;QACN,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YAClD,MAAM,IAAI,CAAC,YAAY,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAA;QAC/C,CAAC;IACH,CAAC;IAED,GAAG,CAAC,KAAa;QACf,OAAO,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,KAAK,SAAS,CAAA;IAC/C,CAAC;IAED,GAAG,CAAC,KAAa;QACf,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;YACrB,MAAM,KAAK,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,CAAA;YACtC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;YAC7B,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,GAAG,KAAK,CAAA;QAClC,CAAC;IACH,CAAC;IAED,MAAM,CAAC,KAAa;QAClB,IAAI,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;YACpB,MAAM,SAAS,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,EAAG,CAAA;YAC1C,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;gBACxB,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,GAAG,SAAS,CAAA;YACtC,CAAC;iBAAM,CAAC;gBACN,MAAM,KAAK,GAAG,IAAI,CAAC,YAAY,CAAC,KAAK,CAAE,CAAA;gBACvC,IAAI,CAAC,YAAY,CAAC,kBAAkB,CAAC,KAAK,CAAC,GAAG,SAAS,CAAA;gBACvD,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,GAAG,KAAK,CAAA;gBACpC,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,GAAG,SAAS,CAAA;YACtC,CAAC;YACD,OAAO,IAAI,CAAA;QACb,CAAC;aAAM,CAAC;YACN,OAAO,KAAK,CAAA;QACd,CAAC;IACH,CAAC;IAED,KAAK;QACH,IAAI,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,CAAA;QAC5B,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,CAAA;IAC3B,CAAC;CACF"}
@@ -1,23 +1,25 @@
1
1
  import { isntNull } from 'extra-utils';
2
2
  export class SkipListNode {
3
+ value;
4
+ previous = null;
5
+ next = null;
6
+ up = null;
7
+ down = null;
3
8
  constructor(value) {
4
9
  this.value = value;
5
- this.previous = null;
6
- this.next = null;
7
- this.up = null;
8
- this.down = null;
9
10
  }
10
11
  }
11
12
  export class SkipList {
13
+ compare;
14
+ head = new SkipListNode(null);
15
+ tail = new SkipListNode(null);
16
+ height = 0;
17
+ _size = 0;
12
18
  get size() {
13
19
  return this._size;
14
20
  }
15
21
  constructor(compare) {
16
22
  this.compare = compare;
17
- this.head = new SkipListNode(null);
18
- this.tail = new SkipListNode(null);
19
- this.height = 0;
20
- this._size = 0;
21
23
  this.head.next = this.tail;
22
24
  this.tail.previous = this.head;
23
25
  }
@@ -1 +1 @@
1
- {"version":3,"file":"skip-list.js","sourceRoot":"","sources":["../../src/utils/skip-list.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"skip-list.js","sourceRoot":"","sources":["../../src/utils/skip-list.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@blackglory/structures",
3
- "version": "0.14.6",
3
+ "version": "0.14.8",
4
4
  "description": "",
5
5
  "files": [
6
6
  "lib",
@@ -26,6 +26,7 @@
26
26
  "bench": "run-s bench:*",
27
27
  "bench:bit-set": "tsx benches/bit-set.ts",
28
28
  "bench:sparse-map": "tsx benches/sparse-map.ts",
29
+ "bench:sparse-set": "tsx benches/sparse-set.ts",
29
30
  "release": "standard-version"
30
31
  },
31
32
  "husky": {
package/src/hash-set.ts CHANGED
@@ -1,4 +1,4 @@
1
- export class HashSet<V, Hash = unknown> implements Iterable<V> {
1
+ export class HashSet<V, Hash = unknown> implements Iterable<V> /* ReadonlySetLike<V> */ {
2
2
  private map = new Map<Hash, V>()
3
3
 
4
4
  get [Symbol.toStringTag](): string {
@@ -32,6 +32,10 @@ export class HashSet<V, Hash = unknown> implements Iterable<V> {
32
32
  this.map.clear()
33
33
  }
34
34
 
35
+ keys(): IterableIterator<V> {
36
+ return this.values()
37
+ }
38
+
35
39
  values(): IterableIterator<V> {
36
40
  return this.map.values()
37
41
  }
package/src/sparse-map.ts CHANGED
@@ -34,8 +34,7 @@ export class SparseMap<T> {
34
34
  }
35
35
 
36
36
  has(key: number): boolean {
37
- // 跟一般的稀疏集实现不同, 不需要访问values数组.
38
- return key in this.keyToIndex
37
+ return this.keyToIndex[key] !== undefined
39
38
  }
40
39
 
41
40
  get(key: number): T | undefined {
@@ -64,13 +63,13 @@ export class SparseMap<T> {
64
63
  const lastKey = this.indexToKey.pop()!
65
64
  const lastValue = this.indexToValue.pop()!
66
65
  if (key === lastKey) {
67
- delete this.keyToIndex[key]
66
+ this.keyToIndex[key] = undefined
68
67
  } else {
69
68
  const index = this.keyToIndex[key]!
70
69
  this.indexToKey[index] = lastKey
71
70
  this.indexToValue[index] = lastValue
72
71
  this.keyToIndex[lastKey] = index
73
- delete this.keyToIndex[key]
72
+ this.keyToIndex[key] = undefined
74
73
  }
75
74
  }
76
75
  }
package/src/sparse-set.ts CHANGED
@@ -30,8 +30,7 @@ export class SparseSet implements Iterable<number> {
30
30
  }
31
31
 
32
32
  has(value: number): boolean {
33
- // 跟一般的实现不同, 不需要访问values数组.
34
- return value in this.valueToIndex
33
+ return this.valueToIndex[value] !== undefined
35
34
  }
36
35
 
37
36
  add(value: number): void {
@@ -46,13 +45,12 @@ export class SparseSet implements Iterable<number> {
46
45
  if (this.has(value)) {
47
46
  const lastValue = this.indexToValue.pop()!
48
47
  if (value === lastValue) {
49
- delete this.valueToIndex[value]
48
+ this.valueToIndex[value] = undefined
50
49
  } else {
51
50
  const index = this.valueToIndex[value]!
52
51
  this.indexToValue[index] = lastValue
53
52
  this.valueToIndex[lastValue] = index
54
- // 跟一般的实现不同, 直接删除值的索引.
55
- delete this.valueToIndex[value]
53
+ this.valueToIndex[value] = undefined
56
54
  }
57
55
  return true
58
56
  } else {