avl-tree-typed 1.53.9 → 1.54.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 (84) hide show
  1. package/dist/data-structures/binary-tree/avl-tree-counter.d.ts +213 -0
  2. package/dist/data-structures/binary-tree/avl-tree-counter.js +407 -0
  3. package/dist/data-structures/binary-tree/avl-tree-multi-map.d.ts +71 -189
  4. package/dist/data-structures/binary-tree/avl-tree-multi-map.js +133 -357
  5. package/dist/data-structures/binary-tree/avl-tree.d.ts +108 -78
  6. package/dist/data-structures/binary-tree/avl-tree.js +126 -79
  7. package/dist/data-structures/binary-tree/binary-indexed-tree.d.ts +3 -0
  8. package/dist/data-structures/binary-tree/binary-indexed-tree.js +3 -0
  9. package/dist/data-structures/binary-tree/binary-tree.d.ts +243 -190
  10. package/dist/data-structures/binary-tree/binary-tree.js +273 -229
  11. package/dist/data-structures/binary-tree/bst.d.ts +141 -122
  12. package/dist/data-structures/binary-tree/bst.js +170 -134
  13. package/dist/data-structures/binary-tree/index.d.ts +2 -0
  14. package/dist/data-structures/binary-tree/index.js +2 -0
  15. package/dist/data-structures/binary-tree/red-black-tree.d.ts +84 -80
  16. package/dist/data-structures/binary-tree/red-black-tree.js +101 -79
  17. package/dist/data-structures/binary-tree/tree-counter.d.ts +212 -0
  18. package/dist/data-structures/binary-tree/tree-counter.js +444 -0
  19. package/dist/data-structures/binary-tree/tree-multi-map.d.ts +78 -186
  20. package/dist/data-structures/binary-tree/tree-multi-map.js +140 -388
  21. package/dist/data-structures/graph/directed-graph.d.ts +3 -0
  22. package/dist/data-structures/graph/directed-graph.js +3 -0
  23. package/dist/data-structures/graph/map-graph.d.ts +3 -0
  24. package/dist/data-structures/graph/map-graph.js +3 -0
  25. package/dist/data-structures/graph/undirected-graph.d.ts +3 -0
  26. package/dist/data-structures/graph/undirected-graph.js +3 -0
  27. package/dist/data-structures/linked-list/singly-linked-list.d.ts +3 -0
  28. package/dist/data-structures/linked-list/singly-linked-list.js +3 -0
  29. package/dist/data-structures/linked-list/skip-linked-list.d.ts +3 -0
  30. package/dist/data-structures/linked-list/skip-linked-list.js +3 -0
  31. package/dist/data-structures/matrix/matrix.d.ts +3 -0
  32. package/dist/data-structures/matrix/matrix.js +3 -0
  33. package/dist/data-structures/matrix/navigator.d.ts +3 -0
  34. package/dist/data-structures/matrix/navigator.js +3 -0
  35. package/dist/data-structures/priority-queue/max-priority-queue.d.ts +3 -0
  36. package/dist/data-structures/priority-queue/max-priority-queue.js +3 -0
  37. package/dist/data-structures/priority-queue/min-priority-queue.d.ts +3 -0
  38. package/dist/data-structures/priority-queue/min-priority-queue.js +3 -0
  39. package/dist/data-structures/trie/trie.d.ts +0 -4
  40. package/dist/data-structures/trie/trie.js +0 -4
  41. package/dist/interfaces/binary-tree.d.ts +7 -6
  42. package/dist/types/data-structures/binary-tree/avl-tree-counter.d.ts +2 -0
  43. package/dist/types/data-structures/binary-tree/avl-tree-counter.js +2 -0
  44. package/dist/types/data-structures/binary-tree/avl-tree-multi-map.d.ts +1 -3
  45. package/dist/types/data-structures/binary-tree/avl-tree.d.ts +0 -2
  46. package/dist/types/data-structures/binary-tree/binary-tree.d.ts +0 -2
  47. package/dist/types/data-structures/binary-tree/bst.d.ts +3 -2
  48. package/dist/types/data-structures/binary-tree/index.d.ts +2 -0
  49. package/dist/types/data-structures/binary-tree/index.js +2 -0
  50. package/dist/types/data-structures/binary-tree/rb-tree.d.ts +1 -3
  51. package/dist/types/data-structures/binary-tree/tree-counter.d.ts +2 -0
  52. package/dist/types/data-structures/binary-tree/tree-counter.js +2 -0
  53. package/dist/types/data-structures/binary-tree/tree-multi-map.d.ts +1 -3
  54. package/package.json +2 -2
  55. package/src/data-structures/binary-tree/avl-tree-counter.ts +463 -0
  56. package/src/data-structures/binary-tree/avl-tree-multi-map.ts +148 -394
  57. package/src/data-structures/binary-tree/avl-tree.ts +152 -112
  58. package/src/data-structures/binary-tree/binary-indexed-tree.ts +3 -0
  59. package/src/data-structures/binary-tree/binary-tree.ts +446 -379
  60. package/src/data-structures/binary-tree/bst.ts +224 -201
  61. package/src/data-structures/binary-tree/index.ts +2 -0
  62. package/src/data-structures/binary-tree/red-black-tree.ts +138 -114
  63. package/src/data-structures/binary-tree/tree-counter.ts +504 -0
  64. package/src/data-structures/binary-tree/tree-multi-map.ts +156 -428
  65. package/src/data-structures/graph/directed-graph.ts +3 -0
  66. package/src/data-structures/graph/map-graph.ts +3 -0
  67. package/src/data-structures/graph/undirected-graph.ts +3 -0
  68. package/src/data-structures/linked-list/singly-linked-list.ts +3 -0
  69. package/src/data-structures/linked-list/skip-linked-list.ts +3 -0
  70. package/src/data-structures/matrix/matrix.ts +3 -0
  71. package/src/data-structures/matrix/navigator.ts +3 -0
  72. package/src/data-structures/priority-queue/max-priority-queue.ts +3 -0
  73. package/src/data-structures/priority-queue/min-priority-queue.ts +3 -0
  74. package/src/data-structures/trie/trie.ts +0 -4
  75. package/src/interfaces/binary-tree.ts +10 -11
  76. package/src/types/data-structures/binary-tree/avl-tree-counter.ts +3 -0
  77. package/src/types/data-structures/binary-tree/avl-tree-multi-map.ts +1 -4
  78. package/src/types/data-structures/binary-tree/avl-tree.ts +0 -3
  79. package/src/types/data-structures/binary-tree/binary-tree.ts +0 -5
  80. package/src/types/data-structures/binary-tree/bst.ts +5 -3
  81. package/src/types/data-structures/binary-tree/index.ts +2 -0
  82. package/src/types/data-structures/binary-tree/rb-tree.ts +1 -4
  83. package/src/types/data-structures/binary-tree/tree-counter.ts +3 -0
  84. package/src/types/data-structures/binary-tree/tree-multi-map.ts +1 -4
@@ -33,6 +33,9 @@ class UndirectedEdge extends abstract_graph_1.AbstractEdge {
33
33
  }
34
34
  }
35
35
  exports.UndirectedEdge = UndirectedEdge;
36
+ /**
37
+ *
38
+ */
36
39
  class UndirectedGraph extends abstract_graph_1.AbstractGraph {
37
40
  /**
38
41
  * The constructor initializes a new Map object to store edgeMap.
@@ -40,6 +40,9 @@ export declare class SinglyLinkedListNode<E = any> {
40
40
  */
41
41
  set next(value: SinglyLinkedListNode<E> | undefined);
42
42
  }
43
+ /**
44
+ *
45
+ */
43
46
  export declare class SinglyLinkedList<E = any, R = any> extends IterableElementBase<E, R, SinglyLinkedList<E, R>> {
44
47
  constructor(elements?: Iterable<E> | Iterable<R> | Iterable<SinglyLinkedListNode<E>>, options?: SinglyLinkedListOptions<E, R>);
45
48
  protected _head: SinglyLinkedListNode<E> | undefined;
@@ -45,6 +45,9 @@ class SinglyLinkedListNode {
45
45
  }
46
46
  }
47
47
  exports.SinglyLinkedListNode = SinglyLinkedListNode;
48
+ /**
49
+ *
50
+ */
48
51
  class SinglyLinkedList extends base_1.IterableElementBase {
49
52
  constructor(elements = [], options) {
50
53
  super(options);
@@ -12,6 +12,9 @@ export declare class SkipListNode<K, V> {
12
12
  forward: SkipListNode<K, V>[];
13
13
  constructor(key: K, value: V, level: number);
14
14
  }
15
+ /**
16
+ *
17
+ */
15
18
  export declare class SkipList<K, V> {
16
19
  /**
17
20
  * The constructor function initializes a SkipLinkedList object with optional options and elements.
@@ -9,6 +9,9 @@ class SkipListNode {
9
9
  }
10
10
  }
11
11
  exports.SkipListNode = SkipListNode;
12
+ /**
13
+ *
14
+ */
12
15
  class SkipList {
13
16
  /**
14
17
  * The constructor function initializes a SkipLinkedList object with optional options and elements.
@@ -6,6 +6,9 @@
6
6
  * @license MIT License
7
7
  */
8
8
  import type { MatrixOptions } from '../../types';
9
+ /**
10
+ *
11
+ */
9
12
  export declare class Matrix {
10
13
  /**
11
14
  * The constructor function initializes a matrix object with the provided data and options, or with
@@ -1,6 +1,9 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.Matrix = void 0;
4
+ /**
5
+ *
6
+ */
4
7
  class Matrix {
5
8
  /**
6
9
  * The constructor function initializes a matrix object with the provided data and options, or with
@@ -19,6 +19,9 @@ export declare class Character {
19
19
  */
20
20
  constructor(direction: Direction, turning: Turning);
21
21
  }
22
+ /**
23
+ *
24
+ */
22
25
  export declare class Navigator<T = number> {
23
26
  onMove: (cur: [number, number]) => void;
24
27
  protected readonly _matrix: T[][];
@@ -16,6 +16,9 @@ class Character {
16
16
  }
17
17
  }
18
18
  exports.Character = Character;
19
+ /**
20
+ *
21
+ */
19
22
  class Navigator {
20
23
  /**
21
24
  * The constructor initializes the Navigator object with the given parameters and sets the current position as visited
@@ -7,6 +7,9 @@
7
7
  */
8
8
  import type { Comparator, ElementCallback, PriorityQueueOptions } from '../../types';
9
9
  import { PriorityQueue } from './priority-queue';
10
+ /**
11
+ *
12
+ */
10
13
  export declare class MaxPriorityQueue<E = any, R = any> extends PriorityQueue<E, R> {
11
14
  /**
12
15
  * The constructor initializes a PriorityQueue with optional elements and options, including a
@@ -2,6 +2,9 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.MaxPriorityQueue = void 0;
4
4
  const priority_queue_1 = require("./priority-queue");
5
+ /**
6
+ *
7
+ */
5
8
  class MaxPriorityQueue extends priority_queue_1.PriorityQueue {
6
9
  /**
7
10
  * The constructor initializes a PriorityQueue with optional elements and options, including a
@@ -7,6 +7,9 @@
7
7
  */
8
8
  import type { Comparator, ElementCallback, PriorityQueueOptions } from '../../types';
9
9
  import { PriorityQueue } from './priority-queue';
10
+ /**
11
+ *
12
+ */
10
13
  export declare class MinPriorityQueue<E = any, R = any> extends PriorityQueue<E, R> {
11
14
  /**
12
15
  * The constructor initializes a PriorityQueue with optional elements and options, including a
@@ -2,6 +2,9 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.MinPriorityQueue = void 0;
4
4
  const priority_queue_1 = require("./priority-queue");
5
+ /**
6
+ *
7
+ */
5
8
  class MinPriorityQueue extends priority_queue_1.PriorityQueue {
6
9
  /**
7
10
  * The constructor initializes a PriorityQueue with optional elements and options, including a
@@ -7,10 +7,6 @@
7
7
  */
8
8
  import type { ElementCallback, TrieOptions } from '../../types';
9
9
  import { IterableElementBase } from '../base';
10
- /**
11
- * TrieNode represents a node in the Trie data structure. It holds a character key, a map of children nodes,
12
- * and a flag indicating whether it's the end of a word.
13
- */
14
10
  export declare class TrieNode {
15
11
  constructor(key: string);
16
12
  protected _key: string;
@@ -2,10 +2,6 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.Trie = exports.TrieNode = void 0;
4
4
  const base_1 = require("../base");
5
- /**
6
- * TrieNode represents a node in the Trie data structure. It holds a character key, a map of children nodes,
7
- * and a flag indicating whether it's the end of a word.
8
- */
9
5
  class TrieNode {
10
6
  constructor(key) {
11
7
  this._key = key;
@@ -1,8 +1,9 @@
1
1
  import { BinaryTreeNode } from '../data-structures';
2
- import type { BinaryTreeDeleteResult, BinaryTreeNodeNested, BTNRep, NodePredicate } from '../types';
3
- export interface IBinaryTree<K = any, V = any, R = object, NODE extends BinaryTreeNode<K, V, NODE> = BinaryTreeNodeNested<K, V>> {
4
- createNode(key: K, value?: NODE['value']): NODE;
5
- add(keyOrNodeOrEntryOrRawElement: BTNRep<K, V, NODE>, value?: V, count?: number): boolean;
6
- addMany(nodes: Iterable<BTNRep<K, V, NODE>>, values?: Iterable<V | undefined>): boolean[];
7
- delete(predicate: R | BTNRep<K, V, NODE> | NodePredicate<NODE>): BinaryTreeDeleteResult<NODE>[];
2
+ import type { BinaryTreeDeleteResult, BinaryTreeOptions, BTNRep, NodePredicate } from '../types';
3
+ export interface IBinaryTree<K = any, V = any, R = object, MK = any, MV = any, MR = object> {
4
+ createNode(key: K, value?: BinaryTreeNode['value']): BinaryTreeNode;
5
+ createTree(options?: Partial<BinaryTreeOptions<K, V, R>>): IBinaryTree<K, V, R, MK, MV, MR>;
6
+ add(keyOrNodeOrEntryOrRawElement: BTNRep<K, V, BinaryTreeNode<K, V>>, value?: V, count?: number): boolean;
7
+ addMany(nodes: Iterable<BTNRep<K, V, BinaryTreeNode<K, V>>>, values?: Iterable<V | undefined>): boolean[];
8
+ delete(predicate: R | BTNRep<K, V, BinaryTreeNode<K, V>> | NodePredicate<BinaryTreeNode<K, V>>): BinaryTreeDeleteResult<BinaryTreeNode<K, V>>[];
8
9
  }
@@ -0,0 +1,2 @@
1
+ import { AVLTreeOptions } from './avl-tree';
2
+ export type AVLTreeCounterOptions<K, V, R> = AVLTreeOptions<K, V, R> & {};
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -1,4 +1,2 @@
1
- import { AVLTreeMultiMapNode } from '../../../data-structures';
2
1
  import type { AVLTreeOptions } from './avl-tree';
3
- export type AVLTreeMultiMapNodeNested<K, V> = AVLTreeMultiMapNode<K, V, AVLTreeMultiMapNode<K, V, AVLTreeMultiMapNode<K, V, AVLTreeMultiMapNode<K, V, AVLTreeMultiMapNode<K, V, AVLTreeMultiMapNode<K, V, AVLTreeMultiMapNode<K, V, AVLTreeMultiMapNode<K, V, AVLTreeMultiMapNode<K, V, AVLTreeMultiMapNode<K, V, any>>>>>>>>>>;
4
- export type AVLTreeMultiMapOptions<K, V, R> = AVLTreeOptions<K, V, R> & {};
2
+ export type AVLTreeMultiMapOptions<K, V, R> = Omit<AVLTreeOptions<K, V, R>, 'isMapMode'> & {};
@@ -1,4 +1,2 @@
1
- import { AVLTreeNode } from '../../../data-structures';
2
1
  import { BSTOptions } from './bst';
3
- export type AVLTreeNodeNested<K, V> = AVLTreeNode<K, V, AVLTreeNode<K, V, AVLTreeNode<K, V, AVLTreeNode<K, V, AVLTreeNode<K, V, AVLTreeNode<K, V, AVLTreeNode<K, V, AVLTreeNode<K, V, AVLTreeNode<K, V, AVLTreeNode<K, V, any>>>>>>>>>>;
4
2
  export type AVLTreeOptions<K, V, R> = BSTOptions<K, V, R> & {};
@@ -1,7 +1,5 @@
1
- import { BinaryTreeNode } from '../../../data-structures';
2
1
  import { IterationType, OptValue } from '../../common';
3
2
  import { DFSOperation } from '../../../common';
4
- export type BinaryTreeNodeNested<K, V> = BinaryTreeNode<K, V, BinaryTreeNode<K, V, BinaryTreeNode<K, V, BinaryTreeNode<K, V, BinaryTreeNode<K, V, BinaryTreeNode<K, V, BinaryTreeNode<K, V, BinaryTreeNode<K, V, BinaryTreeNode<K, V, BinaryTreeNode<K, V, any>>>>>>>>>>;
5
3
  export type ToEntryFn<K, V, R> = (rawElement: R) => BTNEntry<K, V>;
6
4
  export type BinaryTreeOptions<K, V, R> = {
7
5
  iterationType?: IterationType;
@@ -1,11 +1,12 @@
1
- import { BSTNode } from '../../../data-structures';
2
1
  import type { BinaryTreeOptions } from './binary-tree';
3
2
  import { Comparable } from '../../utils';
4
- export type BSTNodeNested<K, V> = BSTNode<K, V, BSTNode<K, V, BSTNode<K, V, BSTNode<K, V, BSTNode<K, V, BSTNode<K, V, BSTNode<K, V, BSTNode<K, V, BSTNode<K, V, BSTNode<K, V, any>>>>>>>>>>;
3
+ import { OptValue } from '../../common';
5
4
  export type BSTOptions<K, V, R> = BinaryTreeOptions<K, V, R> & {
6
5
  specifyComparable?: (key: K) => Comparable;
7
6
  isReverse?: boolean;
8
7
  };
9
8
  export type BSTNOptKey<K> = K | undefined;
10
9
  export type OptNode<NODE> = NODE | undefined;
10
+ export type BSTNEntry<K, V> = [BSTNOptKey<K>, OptValue<V>];
11
11
  export type BSTNOptKeyOrNode<K, NODE> = BSTNOptKey<K> | NODE;
12
+ export type BSTNRep<K, V, NODE> = BSTNEntry<K, V> | BSTNOptKeyOrNode<K, NODE>;
@@ -5,3 +5,5 @@ export * from './segment-tree';
5
5
  export * from './avl-tree-multi-map';
6
6
  export * from './rb-tree';
7
7
  export * from './tree-multi-map';
8
+ export * from './tree-counter';
9
+ export * from './avl-tree-counter';
@@ -21,3 +21,5 @@ __exportStar(require("./segment-tree"), exports);
21
21
  __exportStar(require("./avl-tree-multi-map"), exports);
22
22
  __exportStar(require("./rb-tree"), exports);
23
23
  __exportStar(require("./tree-multi-map"), exports);
24
+ __exportStar(require("./tree-counter"), exports);
25
+ __exportStar(require("./avl-tree-counter"), exports);
@@ -1,5 +1,3 @@
1
- import { RedBlackTreeNode } from '../../../data-structures';
2
1
  import type { BSTOptions } from './bst';
3
2
  export type RBTNColor = 'RED' | 'BLACK';
4
- export type RedBlackTreeNodeNested<K, V> = RedBlackTreeNode<K, V, RedBlackTreeNode<K, V, RedBlackTreeNode<K, V, RedBlackTreeNode<K, V, RedBlackTreeNode<K, V, RedBlackTreeNode<K, V, RedBlackTreeNode<K, V, RedBlackTreeNode<K, V, RedBlackTreeNode<K, V, RedBlackTreeNode<K, V, any>>>>>>>>>>;
5
- export type RedBlackTreeOptions<K, V, R> = Omit<BSTOptions<K, V, R>, 'isReverse'> & {};
3
+ export type RedBlackTreeOptions<K, V, R> = BSTOptions<K, V, R> & {};
@@ -0,0 +1,2 @@
1
+ import type { RedBlackTreeOptions } from './rb-tree';
2
+ export type TreeCounterOptions<K, V, R> = RedBlackTreeOptions<K, V, R> & {};
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -1,4 +1,2 @@
1
- import { TreeMultiMapNode } from '../../../data-structures';
2
1
  import type { RedBlackTreeOptions } from './rb-tree';
3
- export type TreeMultiMapNodeNested<K, V> = TreeMultiMapNode<K, V, TreeMultiMapNode<K, V, TreeMultiMapNode<K, V, TreeMultiMapNode<K, V, TreeMultiMapNode<K, V, TreeMultiMapNode<K, V, TreeMultiMapNode<K, V, TreeMultiMapNode<K, V, TreeMultiMapNode<K, V, TreeMultiMapNode<K, V, any>>>>>>>>>>;
4
- export type TreeMultiMapOptions<K, V, R> = RedBlackTreeOptions<K, V, R> & {};
2
+ export type TreeMultiMapOptions<K, V, R> = Omit<RedBlackTreeOptions<K, V, R>, 'isMapMode'> & {};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "avl-tree-typed",
3
- "version": "1.53.9",
3
+ "version": "1.54.1",
4
4
  "description": "AVLTree(Adelson-Velsky and Landis Tree). Javascript & Typescript Data Structure.",
5
5
  "main": "dist/index.js",
6
6
  "scripts": {
@@ -163,6 +163,6 @@
163
163
  "typescript": "^4.9.5"
164
164
  },
165
165
  "dependencies": {
166
- "data-structure-typed": "^1.53.9"
166
+ "data-structure-typed": "^1.54.1"
167
167
  }
168
168
  }