data-structure-typed 1.19.9 → 1.21.0

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 (115) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +6 -4
  3. package/dist/data-structures/binary-tree/abstract-binary-tree.d.ts +11 -18
  4. package/dist/data-structures/binary-tree/abstract-binary-tree.js +52 -74
  5. package/dist/data-structures/binary-tree/tree-multiset.d.ts +6 -6
  6. package/dist/data-structures/binary-tree/tree-multiset.js +20 -28
  7. package/dist/data-structures/graph/abstract-graph.d.ts +3 -3
  8. package/dist/data-structures/graph/abstract-graph.js +6 -2
  9. package/dist/data-structures/graph/index.d.ts +1 -0
  10. package/dist/data-structures/graph/index.js +1 -0
  11. package/dist/data-structures/graph/map-graph.d.ts +79 -0
  12. package/dist/data-structures/graph/map-graph.js +111 -0
  13. package/dist/data-structures/heap/heap.d.ts +3 -0
  14. package/dist/data-structures/heap/heap.js +13 -0
  15. package/dist/data-structures/interfaces/abstract-binary-tree.d.ts +0 -2
  16. package/dist/data-structures/tree/tree.d.ts +1 -1
  17. package/dist/data-structures/types/abstract-binary-tree.d.ts +0 -1
  18. package/dist/data-structures/types/abstract-graph.d.ts +1 -0
  19. package/dist/data-structures/types/index.d.ts +1 -0
  20. package/dist/data-structures/types/index.js +1 -0
  21. package/dist/data-structures/types/map-graph.d.ts +1 -0
  22. package/dist/data-structures/types/map-graph.js +2 -0
  23. package/dist/data-structures/types/tree-multiset.d.ts +1 -3
  24. package/package.json +1 -1
  25. package/src/data-structures/binary-tree/aa-tree.ts +0 -3
  26. package/src/data-structures/binary-tree/abstract-binary-tree.ts +0 -1479
  27. package/src/data-structures/binary-tree/avl-tree.ts +0 -301
  28. package/src/data-structures/binary-tree/b-tree.ts +0 -3
  29. package/src/data-structures/binary-tree/binary-indexed-tree.ts +0 -78
  30. package/src/data-structures/binary-tree/binary-tree.ts +0 -42
  31. package/src/data-structures/binary-tree/bst.ts +0 -438
  32. package/src/data-structures/binary-tree/index.ts +0 -12
  33. package/src/data-structures/binary-tree/rb-tree.ts +0 -102
  34. package/src/data-structures/binary-tree/segment-tree.ts +0 -243
  35. package/src/data-structures/binary-tree/splay-tree.ts +0 -3
  36. package/src/data-structures/binary-tree/tree-multiset.ts +0 -712
  37. package/src/data-structures/binary-tree/two-three-tree.ts +0 -3
  38. package/src/data-structures/diagrams/README.md +0 -5
  39. package/src/data-structures/graph/abstract-graph.ts +0 -1033
  40. package/src/data-structures/graph/directed-graph.ts +0 -472
  41. package/src/data-structures/graph/index.ts +0 -3
  42. package/src/data-structures/graph/undirected-graph.ts +0 -270
  43. package/src/data-structures/hash/coordinate-map.ts +0 -67
  44. package/src/data-structures/hash/coordinate-set.ts +0 -56
  45. package/src/data-structures/hash/hash-table.ts +0 -3
  46. package/src/data-structures/hash/index.ts +0 -6
  47. package/src/data-structures/hash/pair.ts +0 -3
  48. package/src/data-structures/hash/tree-map.ts +0 -3
  49. package/src/data-structures/hash/tree-set.ts +0 -3
  50. package/src/data-structures/heap/heap.ts +0 -183
  51. package/src/data-structures/heap/index.ts +0 -3
  52. package/src/data-structures/heap/max-heap.ts +0 -31
  53. package/src/data-structures/heap/min-heap.ts +0 -34
  54. package/src/data-structures/index.ts +0 -15
  55. package/src/data-structures/interfaces/abstract-binary-tree.ts +0 -194
  56. package/src/data-structures/interfaces/abstract-graph.ts +0 -40
  57. package/src/data-structures/interfaces/avl-tree.ts +0 -28
  58. package/src/data-structures/interfaces/binary-tree.ts +0 -8
  59. package/src/data-structures/interfaces/bst.ts +0 -32
  60. package/src/data-structures/interfaces/directed-graph.ts +0 -20
  61. package/src/data-structures/interfaces/doubly-linked-list.ts +0 -1
  62. package/src/data-structures/interfaces/heap.ts +0 -1
  63. package/src/data-structures/interfaces/index.ts +0 -15
  64. package/src/data-structures/interfaces/navigator.ts +0 -1
  65. package/src/data-structures/interfaces/priority-queue.ts +0 -1
  66. package/src/data-structures/interfaces/rb-tree.ts +0 -11
  67. package/src/data-structures/interfaces/segment-tree.ts +0 -1
  68. package/src/data-structures/interfaces/singly-linked-list.ts +0 -1
  69. package/src/data-structures/interfaces/tree-multiset.ts +0 -12
  70. package/src/data-structures/interfaces/undirected-graph.ts +0 -6
  71. package/src/data-structures/linked-list/doubly-linked-list.ts +0 -573
  72. package/src/data-structures/linked-list/index.ts +0 -3
  73. package/src/data-structures/linked-list/singly-linked-list.ts +0 -490
  74. package/src/data-structures/linked-list/skip-linked-list.ts +0 -3
  75. package/src/data-structures/matrix/index.ts +0 -4
  76. package/src/data-structures/matrix/matrix.ts +0 -27
  77. package/src/data-structures/matrix/matrix2d.ts +0 -208
  78. package/src/data-structures/matrix/navigator.ts +0 -122
  79. package/src/data-structures/matrix/vector2d.ts +0 -316
  80. package/src/data-structures/priority-queue/index.ts +0 -3
  81. package/src/data-structures/priority-queue/max-priority-queue.ts +0 -49
  82. package/src/data-structures/priority-queue/min-priority-queue.ts +0 -50
  83. package/src/data-structures/priority-queue/priority-queue.ts +0 -354
  84. package/src/data-structures/queue/deque.ts +0 -251
  85. package/src/data-structures/queue/index.ts +0 -2
  86. package/src/data-structures/queue/queue.ts +0 -120
  87. package/src/data-structures/stack/index.ts +0 -1
  88. package/src/data-structures/stack/stack.ts +0 -98
  89. package/src/data-structures/tree/index.ts +0 -1
  90. package/src/data-structures/tree/tree.ts +0 -69
  91. package/src/data-structures/trie/index.ts +0 -1
  92. package/src/data-structures/trie/trie.ts +0 -227
  93. package/src/data-structures/types/abstract-binary-tree.ts +0 -41
  94. package/src/data-structures/types/abstract-graph.ts +0 -5
  95. package/src/data-structures/types/avl-tree.ts +0 -5
  96. package/src/data-structures/types/binary-tree.ts +0 -9
  97. package/src/data-structures/types/bst.ts +0 -12
  98. package/src/data-structures/types/directed-graph.ts +0 -8
  99. package/src/data-structures/types/doubly-linked-list.ts +0 -1
  100. package/src/data-structures/types/heap.ts +0 -5
  101. package/src/data-structures/types/helpers.ts +0 -1
  102. package/src/data-structures/types/index.ts +0 -15
  103. package/src/data-structures/types/navigator.ts +0 -13
  104. package/src/data-structures/types/priority-queue.ts +0 -9
  105. package/src/data-structures/types/rb-tree.ts +0 -8
  106. package/src/data-structures/types/segment-tree.ts +0 -1
  107. package/src/data-structures/types/singly-linked-list.ts +0 -1
  108. package/src/data-structures/types/tree-multiset.ts +0 -8
  109. package/src/index.ts +0 -2
  110. package/src/utils/index.ts +0 -3
  111. package/src/utils/types/index.ts +0 -2
  112. package/src/utils/types/utils.ts +0 -6
  113. package/src/utils/types/validate-type.ts +0 -25
  114. package/src/utils/utils.ts +0 -78
  115. package/src/utils/validate-type.ts +0 -69
@@ -134,6 +134,19 @@ class Heap {
134
134
  const itemArray = this._pq.toArray();
135
135
  return isItem ? itemArray : itemArray.map(item => item.val);
136
136
  }
137
+ /**
138
+ * The function sorts the elements in the priority queue and returns either the sorted items or their values depending
139
+ * on the value of the isItem parameter.
140
+ * @param {boolean} [isItem] - The `isItem` parameter is a boolean flag that indicates whether the sorted result should
141
+ * be an array of `HeapItem<T>` objects or an array of the values (`T`) of those objects. If `isItem` is `true`, the
142
+ * sorted result will be an array of `HeapItem
143
+ * @returns an array of either `HeapItem<T>`, `null`, `T`, or `undefined` values.
144
+ */
145
+ sort(isItem) {
146
+ isItem = isItem !== null && isItem !== void 0 ? isItem : false;
147
+ const sorted = this._pq.sort();
148
+ return isItem ? sorted : sorted.map(item => item.val);
149
+ }
137
150
  /**
138
151
  * The clear function clears the priority queue.
139
152
  */
@@ -22,14 +22,12 @@ export interface IAbstractBinaryTree<N extends AbstractBinaryTreeNode<N['val'],
22
22
  get visitedVal(): Array<N['val']>;
23
23
  get visitedNode(): N[];
24
24
  get visitedLeftSum(): number[];
25
- get isMergeDuplicatedNodeById(): boolean;
26
25
  get root(): N | null;
27
26
  get size(): number;
28
27
  swapLocation(srcNode: N, destNode: N): N;
29
28
  clear(): void;
30
29
  isEmpty(): boolean;
31
30
  add(id: BinaryTreeNodeId | N, val?: N['val']): N | null | undefined;
32
- addTo(newNode: N | null, parent: N): N | null | undefined;
33
31
  addMany(idsOrNodes: (BinaryTreeNodeId | N | null)[], data?: N['val'][]): (N | null | undefined)[];
34
32
  fill(idsOrNodes: (BinaryTreeNodeId | N | null)[], data?: N[] | Array<N['val']>): boolean;
35
33
  remove(id: BinaryTreeNodeId, ignoreCount?: boolean): BinaryTreeDeletedResult<N>[];
@@ -1,4 +1,4 @@
1
- export declare class TreeNode<T = number> {
1
+ export declare class TreeNode<T = any> {
2
2
  constructor(id: string, value?: T, children?: TreeNode<T>[]);
3
3
  private _id;
4
4
  get id(): string;
@@ -31,5 +31,4 @@ export type AbstractBinaryTreeNodeProperties<N extends AbstractBinaryTreeNode<N[
31
31
  export type AbstractBinaryTreeNodeNested<T> = AbstractBinaryTreeNode<T, AbstractBinaryTreeNode<T, AbstractBinaryTreeNode<T, AbstractBinaryTreeNode<T, AbstractBinaryTreeNode<T, AbstractBinaryTreeNode<T, AbstractBinaryTreeNode<T, AbstractBinaryTreeNode<T, AbstractBinaryTreeNode<T, AbstractBinaryTreeNode<T, AbstractBinaryTreeNode<T, AbstractBinaryTreeNode<T, AbstractBinaryTreeNode<T, AbstractBinaryTreeNode<T, AbstractBinaryTreeNode<T, AbstractBinaryTreeNode<T, AbstractBinaryTreeNode<T, AbstractBinaryTreeNode<T, AbstractBinaryTreeNode<T, AbstractBinaryTreeNode<T, AbstractBinaryTreeNode<T, AbstractBinaryTreeNode<T, AbstractBinaryTreeNode<T, AbstractBinaryTreeNode<T, AbstractBinaryTreeNode<T, AbstractBinaryTreeNode<T, AbstractBinaryTreeNode<T, AbstractBinaryTreeNode<T, AbstractBinaryTreeNode<T, AbstractBinaryTreeNode<T, AbstractBinaryTreeNode<T, AbstractBinaryTreeNode<T, AbstractBinaryTreeNode<T, AbstractBinaryTreeNode<T, AbstractBinaryTreeNode<T, AbstractBinaryTreeNode<T, AbstractBinaryTreeNode<T, AbstractBinaryTreeNode<T, AbstractBinaryTreeNode<T, AbstractBinaryTreeNode<T, AbstractBinaryTreeNode<T, AbstractBinaryTreeNode<T, AbstractBinaryTreeNode<T, AbstractBinaryTreeNode<T, AbstractBinaryTreeNode<T, AbstractBinaryTreeNode<T, AbstractBinaryTreeNode<T, AbstractBinaryTreeNode<T, AbstractBinaryTreeNode<T, AbstractBinaryTreeNode<T, any>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>;
32
32
  export type AbstractBinaryTreeOptions = {
33
33
  loopType?: LoopType;
34
- isMergeDuplicatedNodeById?: boolean;
35
34
  };
@@ -2,6 +2,7 @@ export type VertexId = string | number;
2
2
  export type EdgeId = string;
3
3
  export type DijkstraResult<V> = {
4
4
  distMap: Map<V, number>;
5
+ distPaths?: Map<V, V[]>;
5
6
  preMap: Map<V, V | null>;
6
7
  seen: Set<V>;
7
8
  paths: V[][];
@@ -4,6 +4,7 @@ export * from './avl-tree';
4
4
  export * from './segment-tree';
5
5
  export * from './tree-multiset';
6
6
  export * from './abstract-graph';
7
+ export * from './map-graph';
7
8
  export * from './abstract-binary-tree';
8
9
  export * from './rb-tree';
9
10
  export * from './directed-graph';
@@ -20,6 +20,7 @@ __exportStar(require("./avl-tree"), exports);
20
20
  __exportStar(require("./segment-tree"), exports);
21
21
  __exportStar(require("./tree-multiset"), exports);
22
22
  __exportStar(require("./abstract-graph"), exports);
23
+ __exportStar(require("./map-graph"), exports);
23
24
  __exportStar(require("./abstract-binary-tree"), exports);
24
25
  __exportStar(require("./rb-tree"), exports);
25
26
  __exportStar(require("./directed-graph"), exports);
@@ -0,0 +1 @@
1
+ export type MapGraphCoordinate = [number, number];
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -1,6 +1,4 @@
1
1
  import { TreeMultisetNode } from '../binary-tree';
2
2
  import { AVLTreeOptions } from './avl-tree';
3
3
  export type TreeMultisetNodeNested<T> = TreeMultisetNode<T, TreeMultisetNode<T, TreeMultisetNode<T, TreeMultisetNode<T, TreeMultisetNode<T, TreeMultisetNode<T, TreeMultisetNode<T, TreeMultisetNode<T, TreeMultisetNode<T, TreeMultisetNode<T, TreeMultisetNode<T, TreeMultisetNode<T, TreeMultisetNode<T, TreeMultisetNode<T, TreeMultisetNode<T, TreeMultisetNode<T, TreeMultisetNode<T, TreeMultisetNode<T, TreeMultisetNode<T, TreeMultisetNode<T, TreeMultisetNode<T, TreeMultisetNode<T, TreeMultisetNode<T, TreeMultisetNode<T, TreeMultisetNode<T, TreeMultisetNode<T, TreeMultisetNode<T, TreeMultisetNode<T, TreeMultisetNode<T, TreeMultisetNode<T, TreeMultisetNode<T, TreeMultisetNode<T, TreeMultisetNode<T, TreeMultisetNode<T, TreeMultisetNode<T, TreeMultisetNode<T, TreeMultisetNode<T, TreeMultisetNode<T, TreeMultisetNode<T, TreeMultisetNode<T, TreeMultisetNode<T, TreeMultisetNode<T, TreeMultisetNode<T, TreeMultisetNode<T, TreeMultisetNode<T, TreeMultisetNode<T, TreeMultisetNode<T, TreeMultisetNode<T, TreeMultisetNode<T, TreeMultisetNode<T, any>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>;
4
- export type TreeMultisetOptions = Omit<AVLTreeOptions, 'isMergeDuplicatedNodeById'> & {
5
- isMergeDuplicatedNodeById: true;
6
- };
4
+ export type TreeMultisetOptions = Omit<AVLTreeOptions, 'isMergeDuplicatedNodeById'> & {};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "data-structure-typed",
3
- "version": "1.19.9",
3
+ "version": "1.21.0",
4
4
  "description": "Javascript & TypeScript Data Structure Library, meticulously crafted to empower developers with a versatile set of essential data structures. Our library includes a wide range of data structures, such as Binary Tree, AVL Tree, Binary Search Tree (BST), Tree Multiset, Segment Tree, Binary Indexed Tree, Graph, Directed Graph, Undirected Graph, Singly Linked List, Hash, CoordinateSet, CoordinateMap, Heap, Doubly Linked List, Priority Queue, Max Priority Queue, Min Priority Queue, Queue, ObjectDeque, ArrayDeque, Stack, and Trie. Each data structure is thoughtfully designed and implemented using TypeScript to provide efficient, reliable, and easy-to-use solutions for your programming needs. Whether you're optimizing algorithms, managing data, or enhancing performance, our TypeScript Data Structure Library is your go-to resource. Elevate your coding experience with these fundamental building blocks for software development.",
5
5
  "main": "dist/index.js",
6
6
  "scripts": {
@@ -1,3 +0,0 @@
1
- export class AaTree {
2
-
3
- }