@raikuxq/alg-ds 1.2.5 → 2.0.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 (189) hide show
  1. package/README.md +0 -25
  2. package/lib/index.d.ts +1216 -3
  3. package/lib/index.mjs +1 -0
  4. package/package.json +78 -72
  5. package/lib/app/algorithms/binary-search.d.ts +0 -5
  6. package/lib/app/algorithms/binary-search.js +0 -27
  7. package/lib/app/algorithms/factorial.d.ts +0 -9
  8. package/lib/app/algorithms/factorial.js +0 -17
  9. package/lib/app/algorithms/fibonacci.d.ts +0 -9
  10. package/lib/app/algorithms/fibonacci.js +0 -17
  11. package/lib/app/algorithms/graph/iterator/AbstractGraphIterator.d.ts +0 -39
  12. package/lib/app/algorithms/graph/iterator/AbstractGraphIterator.js +0 -87
  13. package/lib/app/algorithms/graph/iterator/GraphIteratorBFS.d.ts +0 -28
  14. package/lib/app/algorithms/graph/iterator/GraphIteratorBFS.js +0 -70
  15. package/lib/app/algorithms/graph/iterator/GraphIteratorDFS.d.ts +0 -28
  16. package/lib/app/algorithms/graph/iterator/GraphIteratorDFS.js +0 -70
  17. package/lib/app/algorithms/graph/iterator/GraphIteratorDijkstra.d.ts +0 -32
  18. package/lib/app/algorithms/graph/iterator/GraphIteratorDijkstra.js +0 -97
  19. package/lib/app/algorithms/graph/iterator-strategy/BFSIterationStrategy.d.ts +0 -6
  20. package/lib/app/algorithms/graph/iterator-strategy/BFSIterationStrategy.js +0 -13
  21. package/lib/app/algorithms/graph/iterator-strategy/DFSIterationStrategy.d.ts +0 -6
  22. package/lib/app/algorithms/graph/iterator-strategy/DFSIterationStrategy.js +0 -13
  23. package/lib/app/algorithms/graph/iterator-strategy/DijkstraIterationStrategy.d.ts +0 -6
  24. package/lib/app/algorithms/graph/iterator-strategy/DijkstraIterationStrategy.js +0 -13
  25. package/lib/app/algorithms/graph/presenter/presenterAdjacencyLists.d.ts +0 -19
  26. package/lib/app/algorithms/graph/presenter/presenterAdjacencyLists.js +0 -28
  27. package/lib/app/algorithms/graph/presenter/presenterAdjacencyMatrix.d.ts +0 -32
  28. package/lib/app/algorithms/graph/presenter/presenterAdjacencyMatrix.js +0 -48
  29. package/lib/app/algorithms/graph/searching/hasPath.d.ts +0 -9
  30. package/lib/app/algorithms/graph/searching/hasPath.js +0 -30
  31. package/lib/app/algorithms/graph/searching/shortestPath.d.ts +0 -9
  32. package/lib/app/algorithms/graph/searching/shortestPath.js +0 -30
  33. package/lib/app/algorithms/graph/transposing/transposeDirectedGraph.d.ts +0 -2
  34. package/lib/app/algorithms/graph/transposing/transposeDirectedGraph.js +0 -14
  35. package/lib/app/algorithms/memoize.d.ts +0 -5
  36. package/lib/app/algorithms/memoize.js +0 -22
  37. package/lib/app/algorithms/sorts/bubble-sort.d.ts +0 -9
  38. package/lib/app/algorithms/sorts/bubble-sort.js +0 -23
  39. package/lib/app/algorithms/sorts/insertion-sort.d.ts +0 -9
  40. package/lib/app/algorithms/sorts/insertion-sort.js +0 -25
  41. package/lib/app/algorithms/sorts/merge-sort.d.ts +0 -9
  42. package/lib/app/algorithms/sorts/merge-sort.js +0 -61
  43. package/lib/app/algorithms/sorts/quick-sort.d.ts +0 -9
  44. package/lib/app/algorithms/sorts/quick-sort.js +0 -45
  45. package/lib/app/algorithms/sorts/select-sort.d.ts +0 -9
  46. package/lib/app/algorithms/sorts/select-sort.js +0 -20
  47. package/lib/app/algorithms/transpose-matrix.d.ts +0 -6
  48. package/lib/app/algorithms/transpose-matrix.js +0 -19
  49. package/lib/app/constants.d.ts +0 -2
  50. package/lib/app/constants.js +0 -6
  51. package/lib/app/data-structures/BinaryTree/AbstractBinaryTree/AbstractBinaryNode.d.ts +0 -15
  52. package/lib/app/data-structures/BinaryTree/AbstractBinaryTree/AbstractBinaryNode.js +0 -53
  53. package/lib/app/data-structures/BinaryTree/AbstractBinaryTree/AbstractBinaryTree.d.ts +0 -60
  54. package/lib/app/data-structures/BinaryTree/AbstractBinaryTree/AbstractBinaryTree.js +0 -35
  55. package/lib/app/data-structures/BinaryTree/BinarySearchTree/BinarySearchNode.d.ts +0 -13
  56. package/lib/app/data-structures/BinaryTree/BinarySearchTree/BinarySearchNode.js +0 -59
  57. package/lib/app/data-structures/BinaryTree/BinarySearchTree/BinarySearchTree.d.ts +0 -75
  58. package/lib/app/data-structures/BinaryTree/BinarySearchTree/BinarySearchTree.js +0 -276
  59. package/lib/app/data-structures/BinaryTree/RandBinarySearchTree/RandBinarySearchNode.d.ts +0 -16
  60. package/lib/app/data-structures/BinaryTree/RandBinarySearchTree/RandBinarySearchNode.js +0 -70
  61. package/lib/app/data-structures/BinaryTree/RandBinarySearchTree/RandBinarySearchTree.d.ts +0 -58
  62. package/lib/app/data-structures/BinaryTree/RandBinarySearchTree/RandBinarySearchTree.js +0 -236
  63. package/lib/app/data-structures/BinaryTree/_helpers/createBinaryTree.d.ts +0 -6
  64. package/lib/app/data-structures/BinaryTree/_helpers/createBinaryTree.js +0 -22
  65. package/lib/app/data-structures/Graph/AbstractGraph.d.ts +0 -84
  66. package/lib/app/data-structures/Graph/AbstractGraph.js +0 -143
  67. package/lib/app/data-structures/Graph/DirectedGraph.d.ts +0 -27
  68. package/lib/app/data-structures/Graph/DirectedGraph.js +0 -89
  69. package/lib/app/data-structures/Graph/GraphEdge.d.ts +0 -16
  70. package/lib/app/data-structures/Graph/GraphEdge.js +0 -43
  71. package/lib/app/data-structures/Graph/UndirectedGraph.d.ts +0 -31
  72. package/lib/app/data-structures/Graph/UndirectedGraph.js +0 -106
  73. package/lib/app/data-structures/Graph/_helpers/createGraph.d.ts +0 -6
  74. package/lib/app/data-structures/Graph/_helpers/createGraph.js +0 -22
  75. package/lib/app/data-structures/Graph/_helpers/createGraphFromMatrix.d.ts +0 -7
  76. package/lib/app/data-structures/Graph/_helpers/createGraphFromMatrix.js +0 -42
  77. package/lib/app/data-structures/Graph/_helpers/generateRandomGraph.d.ts +0 -4
  78. package/lib/app/data-structures/Graph/_helpers/generateRandomGraph.js +0 -67
  79. package/lib/app/data-structures/HashTable/HashTable.d.ts +0 -73
  80. package/lib/app/data-structures/HashTable/HashTable.js +0 -171
  81. package/lib/app/data-structures/HashTable/HashTableNode.d.ts +0 -11
  82. package/lib/app/data-structures/HashTable/HashTableNode.js +0 -39
  83. package/lib/app/data-structures/LinkedList/AbstractLinkedList/AbstractLinkedList.d.ts +0 -134
  84. package/lib/app/data-structures/LinkedList/AbstractLinkedList/AbstractLinkedList.js +0 -247
  85. package/lib/app/data-structures/LinkedList/AbstractLinkedList/AbstractLinkedNode.d.ts +0 -20
  86. package/lib/app/data-structures/LinkedList/AbstractLinkedList/AbstractLinkedNode.js +0 -41
  87. package/lib/app/data-structures/LinkedList/DoubleLinkedList/DoubleLinkedList.d.ts +0 -42
  88. package/lib/app/data-structures/LinkedList/DoubleLinkedList/DoubleLinkedList.js +0 -98
  89. package/lib/app/data-structures/LinkedList/DoubleLinkedList/DoubleLinkedNode.d.ts +0 -25
  90. package/lib/app/data-structures/LinkedList/DoubleLinkedList/DoubleLinkedNode.js +0 -65
  91. package/lib/app/data-structures/LinkedList/DoubleLinkedList/IterableDoubleLinkedList.d.ts +0 -18
  92. package/lib/app/data-structures/LinkedList/DoubleLinkedList/IterableDoubleLinkedList.js +0 -86
  93. package/lib/app/data-structures/LinkedList/SingleLinkedList/IterableSingleLinkedList.d.ts +0 -18
  94. package/lib/app/data-structures/LinkedList/SingleLinkedList/IterableSingleLinkedList.js +0 -68
  95. package/lib/app/data-structures/LinkedList/SingleLinkedList/SingleLinkedList.d.ts +0 -46
  96. package/lib/app/data-structures/LinkedList/SingleLinkedList/SingleLinkedList.js +0 -103
  97. package/lib/app/data-structures/LinkedList/SingleLinkedList/SingleLinkedNode.d.ts +0 -7
  98. package/lib/app/data-structures/LinkedList/SingleLinkedList/SingleLinkedNode.js +0 -29
  99. package/lib/app/data-structures/LinkedList/_helpers/createLinkedList.d.ts +0 -3
  100. package/lib/app/data-structures/LinkedList/_helpers/createLinkedList.js +0 -34
  101. package/lib/app/data-structures/LoopedArray/LoopedArray.d.ts +0 -86
  102. package/lib/app/data-structures/LoopedArray/LoopedArray.js +0 -165
  103. package/lib/app/data-structures/Queue/Queue.d.ts +0 -50
  104. package/lib/app/data-structures/Queue/Queue.js +0 -85
  105. package/lib/app/data-structures/Stack/Stack.d.ts +0 -50
  106. package/lib/app/data-structures/Stack/Stack.js +0 -85
  107. package/lib/app/exceptions/CollectionIsEmptyException.d.ts +0 -4
  108. package/lib/app/exceptions/CollectionIsEmptyException.js +0 -28
  109. package/lib/app/exceptions/CollectionIsFullException.d.ts +0 -4
  110. package/lib/app/exceptions/CollectionIsFullException.js +0 -28
  111. package/lib/app/exceptions/IndexOutOfBoundsException.d.ts +0 -4
  112. package/lib/app/exceptions/IndexOutOfBoundsException.js +0 -28
  113. package/lib/app/exceptions/IsAlreadyExistsException.d.ts +0 -4
  114. package/lib/app/exceptions/IsAlreadyExistsException.js +0 -28
  115. package/lib/app/exceptions/IsNotFoundException.d.ts +0 -4
  116. package/lib/app/exceptions/IsNotFoundException.js +0 -28
  117. package/lib/app/exceptions/ValueOutOfRangeException.d.ts +0 -4
  118. package/lib/app/exceptions/ValueOutOfRangeException.js +0 -28
  119. package/lib/app/exceptions/base/IllegalArgumentException.d.ts +0 -3
  120. package/lib/app/exceptions/base/IllegalArgumentException.js +0 -27
  121. package/lib/app/exceptions/base/IllegalStateException.d.ts +0 -3
  122. package/lib/app/exceptions/base/IllegalStateException.js +0 -27
  123. package/lib/app/types/EnumBinarySearchTreeType.d.ts +0 -4
  124. package/lib/app/types/EnumBinarySearchTreeType.js +0 -9
  125. package/lib/app/types/EnumGraphTraversalType.d.ts +0 -5
  126. package/lib/app/types/EnumGraphTraversalType.js +0 -10
  127. package/lib/app/types/EnumGraphType.d.ts +0 -4
  128. package/lib/app/types/EnumGraphType.js +0 -9
  129. package/lib/app/types/EnumLinkedListType.d.ts +0 -4
  130. package/lib/app/types/EnumLinkedListType.js +0 -9
  131. package/lib/app/types/EnumRandomGenerationFormat.d.ts +0 -4
  132. package/lib/app/types/EnumRandomGenerationFormat.js +0 -9
  133. package/lib/app/types/EnumSortType.d.ts +0 -7
  134. package/lib/app/types/EnumSortType.js +0 -12
  135. package/lib/app/types/EnumTreeTraversalType.d.ts +0 -5
  136. package/lib/app/types/EnumTreeTraversalType.js +0 -10
  137. package/lib/app/types/FnCompareTwo.d.ts +0 -1
  138. package/lib/app/types/FnCompareTwo.js +0 -3
  139. package/lib/app/types/FnToMemoize.d.ts +0 -1
  140. package/lib/app/types/FnToMemoize.js +0 -3
  141. package/lib/app/types/IArrayFacade.d.ts +0 -4
  142. package/lib/app/types/IArrayFacade.js +0 -3
  143. package/lib/app/types/IBiDirectIterable.d.ts +0 -5
  144. package/lib/app/types/IBiDirectIterable.js +0 -3
  145. package/lib/app/types/IBiDirectIterator.d.ts +0 -11
  146. package/lib/app/types/IBiDirectIterator.js +0 -3
  147. package/lib/app/types/IBinaryTree.d.ts +0 -12
  148. package/lib/app/types/IBinaryTree.js +0 -3
  149. package/lib/app/types/IConvertableToArray.d.ts +0 -4
  150. package/lib/app/types/IConvertableToArray.js +0 -3
  151. package/lib/app/types/IGraph.d.ts +0 -14
  152. package/lib/app/types/IGraph.js +0 -3
  153. package/lib/app/types/IGraphIterationStrategy.d.ts +0 -5
  154. package/lib/app/types/IGraphIterationStrategy.js +0 -3
  155. package/lib/app/types/IGraphIterator.d.ts +0 -11
  156. package/lib/app/types/IGraphIterator.js +0 -3
  157. package/lib/app/types/IIterable.d.ts +0 -4
  158. package/lib/app/types/IIterable.js +0 -3
  159. package/lib/app/types/IIterator.d.ts +0 -14
  160. package/lib/app/types/IIterator.js +0 -3
  161. package/lib/app/types/IKeyValueStorage.d.ts +0 -8
  162. package/lib/app/types/IKeyValueStorage.js +0 -3
  163. package/lib/app/types/ILinearStorage.d.ts +0 -11
  164. package/lib/app/types/ILinearStorage.js +0 -3
  165. package/lib/app/types/ILinearStorageRA.d.ts +0 -13
  166. package/lib/app/types/ILinearStorageRA.js +0 -3
  167. package/lib/app/types/ILinkedList.d.ts +0 -4
  168. package/lib/app/types/ILinkedList.js +0 -3
  169. package/lib/app/types/TypeArrayMatrix.d.ts +0 -1
  170. package/lib/app/types/TypeArrayMatrix.js +0 -3
  171. package/lib/app/utils.d.ts +0 -29
  172. package/lib/app/utils.js +0 -61
  173. package/lib/exports/algorithms.d.ts +0 -16
  174. package/lib/exports/algorithms.js +0 -36
  175. package/lib/exports/constants.d.ts +0 -2
  176. package/lib/exports/constants.js +0 -7
  177. package/lib/exports/data-structures.d.ts +0 -13
  178. package/lib/exports/data-structures.js +0 -28
  179. package/lib/exports/helpers.d.ts +0 -6
  180. package/lib/exports/helpers.js +0 -14
  181. package/lib/exports/sorts.d.ts +0 -6
  182. package/lib/exports/sorts.js +0 -14
  183. package/lib/exports/types.d.ts +0 -16
  184. package/lib/exports/types.js +0 -34
  185. package/lib/exports/utils.d.ts +0 -3
  186. package/lib/exports/utils.js +0 -12
  187. package/lib/exports.d.ts +0 -55
  188. package/lib/exports.js +0 -107
  189. package/lib/index.js +0 -5
@@ -1,32 +0,0 @@
1
- import IGraph from "../../../types/IGraph";
2
- import AbstractGraphIterator from "./AbstractGraphIterator";
3
- /**
4
- * Dijkstra method graph traversal
5
- */
6
- export default class GraphIteratorDijkstra<T> extends AbstractGraphIterator<T> {
7
- private readonly costs;
8
- /**
9
- * @inheritDoc
10
- */
11
- constructor(graph: IGraph<T>);
12
- /**
13
- * Get not visited vertex with minimal cost
14
- */
15
- private getClosestNotVisited;
16
- /**
17
- * @inheritDoc
18
- */
19
- initIteratorImpl(startVertex: T): void;
20
- /**
21
- * @inheritDoc
22
- */
23
- hasNextImpl(): boolean;
24
- /**
25
- * @inheritDoc
26
- */
27
- currentImpl(): T;
28
- /**
29
- * @inheritDoc
30
- */
31
- nextImpl(): T;
32
- }
@@ -1,97 +0,0 @@
1
- "use strict";
2
- var __extends = (this && this.__extends) || (function () {
3
- var extendStatics = function (d, b) {
4
- extendStatics = Object.setPrototypeOf ||
5
- ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
6
- function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
7
- return extendStatics(d, b);
8
- };
9
- return function (d, b) {
10
- extendStatics(d, b);
11
- function __() { this.constructor = d; }
12
- d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
13
- };
14
- })();
15
- Object.defineProperty(exports, "__esModule", { value: true });
16
- var AbstractGraphIterator_1 = require("./AbstractGraphIterator");
17
- var IllegalStateException_1 = require("../../../exceptions/base/IllegalStateException");
18
- /**
19
- * Dijkstra method graph traversal
20
- */
21
- var GraphIteratorDijkstra = /** @class */ (function (_super) {
22
- __extends(GraphIteratorDijkstra, _super);
23
- /**
24
- * @inheritDoc
25
- */
26
- function GraphIteratorDijkstra(graph) {
27
- var _this = _super.call(this, graph) || this;
28
- _this.costs = new Map();
29
- return _this;
30
- }
31
- /**
32
- * Get not visited vertex with minimal cost
33
- */
34
- GraphIteratorDijkstra.prototype.getClosestNotVisited = function () {
35
- var _this = this;
36
- var keys = Array.from(this.costs.keys());
37
- var priorityList = keys
38
- .filter(function (key) { return !_this.visited.get(key); })
39
- .sort(function (aKey, bKey) {
40
- var aCost = _this.costs.get(aKey) || 0;
41
- var bCost = _this.costs.get(bKey) || 0;
42
- return aCost - bCost;
43
- });
44
- if (priorityList[0] === undefined) {
45
- throw new IllegalStateException_1.default("No more vertices found");
46
- }
47
- return priorityList[0];
48
- };
49
- /**
50
- * @inheritDoc
51
- */
52
- GraphIteratorDijkstra.prototype.initIteratorImpl = function (startVertex) {
53
- var _this = this;
54
- this.visited.set(startVertex, true);
55
- this.costs.set(startVertex, 0);
56
- this.graph.getVertexNeighbors(startVertex).forEach(function (neighbor) {
57
- var edgeWeight = _this.graph.getEdgeWeight(startVertex, neighbor);
58
- _this.costs.set(neighbor, edgeWeight);
59
- _this.parents.set(neighbor, startVertex);
60
- });
61
- };
62
- /**
63
- * @inheritDoc
64
- */
65
- GraphIteratorDijkstra.prototype.hasNextImpl = function () {
66
- return !(this.getClosestNotVisited() === null);
67
- };
68
- /**
69
- * @inheritDoc
70
- */
71
- GraphIteratorDijkstra.prototype.currentImpl = function () {
72
- return this.getClosestNotVisited();
73
- };
74
- /**
75
- * @inheritDoc
76
- */
77
- GraphIteratorDijkstra.prototype.nextImpl = function () {
78
- var _this = this;
79
- var next = this.getClosestNotVisited();
80
- this.visited.set(next, true);
81
- var nextNeighbors = this.graph.getVertexNeighbors(next);
82
- var nextCost = this.costs.get(next);
83
- nextNeighbors.forEach(function (neighbor) {
84
- var edgeWeight = _this.graph.getEdgeWeight(next, neighbor);
85
- var currentNeighborCost = _this.costs.get(neighbor) || Infinity;
86
- var newNeighborCost = (nextCost || 0) + edgeWeight;
87
- if (newNeighborCost < currentNeighborCost) {
88
- _this.costs.set(neighbor, newNeighborCost);
89
- _this.parents.set(neighbor, next);
90
- }
91
- });
92
- return next;
93
- };
94
- return GraphIteratorDijkstra;
95
- }(AbstractGraphIterator_1.default));
96
- exports.default = GraphIteratorDijkstra;
97
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiR3JhcGhJdGVyYXRvckRpamtzdHJhLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9hbGdvcml0aG1zL2dyYXBoL2l0ZXJhdG9yL0dyYXBoSXRlcmF0b3JEaWprc3RyYS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7QUFDQSxpRUFBNEQ7QUFDNUQsd0ZBQW1GO0FBRW5GOztHQUVHO0FBQ0g7SUFBc0QseUNBQXdCO0lBRzVFOztPQUVHO0lBQ0gsK0JBQW1CLEtBQWdCO1FBQW5DLFlBQ0Usa0JBQU0sS0FBSyxDQUFDLFNBRWI7UUFEQyxLQUFJLENBQUMsS0FBSyxHQUFHLElBQUksR0FBRyxFQUFFLENBQUM7O0lBQ3pCLENBQUM7SUFFRDs7T0FFRztJQUNLLG9EQUFvQixHQUE1QjtRQUFBLGlCQWdCQztRQWZDLElBQU0sSUFBSSxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDO1FBQzNDLElBQU0sWUFBWSxHQUFHLElBQUk7YUFDdEIsTUFBTSxDQUFDLFVBQUMsR0FBTSxJQUFLLE9BQUEsQ0FBQyxLQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsRUFBdEIsQ0FBc0IsQ0FBQzthQUMxQyxJQUFJLENBQUMsVUFBQyxJQUFPLEVBQUUsSUFBTztZQUNyQixJQUFNLEtBQUssR0FBRyxLQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDeEMsSUFBTSxLQUFLLEdBQUcsS0FBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1lBRXhDLE9BQU8sS0FBSyxHQUFHLEtBQUssQ0FBQztRQUN2QixDQUFDLENBQUMsQ0FBQztRQUVMLElBQUksWUFBWSxDQUFDLENBQUMsQ0FBQyxLQUFLLFNBQVMsRUFBRTtZQUNqQyxN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
@@ -1,6 +0,0 @@
1
- import IGraphIterationStrategy from "../../../types/IGraphIterationStrategy";
2
- import IGraphIterator from "../../../types/IGraphIterator";
3
- import IGraph from "../../../types/IGraph";
4
- export default class BFSIterationStrategy<T> implements IGraphIterationStrategy<T> {
5
- createIterator(graph: IGraph<T>): IGraphIterator<T>;
6
- }
@@ -1,13 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- var GraphIteratorBFS_1 = require("../iterator/GraphIteratorBFS");
4
- var BFSIterationStrategy = /** @class */ (function () {
5
- function BFSIterationStrategy() {
6
- }
7
- BFSIterationStrategy.prototype.createIterator = function (graph) {
8
- return new GraphIteratorBFS_1.default(graph);
9
- };
10
- return BFSIterationStrategy;
11
- }());
12
- exports.default = BFSIterationStrategy;
13
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQkZTSXRlcmF0aW9uU3RyYXRlZ3kuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvYXBwL2FsZ29yaXRobXMvZ3JhcGgvaXRlcmF0b3Itc3RyYXRlZ3kvQkZTSXRlcmF0aW9uU3RyYXRlZ3kudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFHQSxpRUFBNEQ7QUFFNUQ7SUFBQTtJQUtBLENBQUM7SUFIUSw2Q0FBYyxHQUFyQixVQUFzQixLQUFnQjtRQUNwQyxPQUFPLElBQUksMEJBQWdCLENBQUksS0FBSyxDQUFDLENBQUM7SUFDeEMsQ0FBQztJQUNILDJCQUFDO0FBQUQsQ0FBQyxBQUxELElBS0MifQ==
@@ -1,6 +0,0 @@
1
- import IGraph from "../../../types/IGraph";
2
- import IGraphIterationStrategy from "../../../types/IGraphIterationStrategy";
3
- import IGraphIterator from "../../../types/IGraphIterator";
4
- export default class DFSIterationStrategy<T> implements IGraphIterationStrategy<T> {
5
- createIterator(graph: IGraph<T>): IGraphIterator<T>;
6
- }
@@ -1,13 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- var GraphIteratorDFS_1 = require("../iterator/GraphIteratorDFS");
4
- var DFSIterationStrategy = /** @class */ (function () {
5
- function DFSIterationStrategy() {
6
- }
7
- DFSIterationStrategy.prototype.createIterator = function (graph) {
8
- return new GraphIteratorDFS_1.default(graph);
9
- };
10
- return DFSIterationStrategy;
11
- }());
12
- exports.default = DFSIterationStrategy;
13
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiREZTSXRlcmF0aW9uU3RyYXRlZ3kuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvYXBwL2FsZ29yaXRobXMvZ3JhcGgvaXRlcmF0b3Itc3RyYXRlZ3kvREZTSXRlcmF0aW9uU3RyYXRlZ3kudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFHQSxpRUFBNEQ7QUFFNUQ7SUFBQTtJQUtBLENBQUM7SUFIUSw2Q0FBYyxHQUFyQixVQUFzQixLQUFnQjtRQUNwQyxPQUFPLElBQUksMEJBQWdCLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDckMsQ0FBQztJQUNILDJCQUFDO0FBQUQsQ0FBQyxBQUxELElBS0MifQ==
@@ -1,6 +0,0 @@
1
- import IGraph from "../../../types/IGraph";
2
- import IGraphIterationStrategy from "../../../types/IGraphIterationStrategy";
3
- import IGraphIterator from "../../../types/IGraphIterator";
4
- export default class DijkstraIterationStrategy<T> implements IGraphIterationStrategy<T> {
5
- createIterator(graph: IGraph<T>): IGraphIterator<T>;
6
- }
@@ -1,13 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- var GraphIteratorDijkstra_1 = require("../iterator/GraphIteratorDijkstra");
4
- var DijkstraIterationStrategy = /** @class */ (function () {
5
- function DijkstraIterationStrategy() {
6
- }
7
- DijkstraIterationStrategy.prototype.createIterator = function (graph) {
8
- return new GraphIteratorDijkstra_1.default(graph);
9
- };
10
- return DijkstraIterationStrategy;
11
- }());
12
- exports.default = DijkstraIterationStrategy;
13
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRGlqa3N0cmFJdGVyYXRpb25TdHJhdGVneS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvYWxnb3JpdGhtcy9ncmFwaC9pdGVyYXRvci1zdHJhdGVneS9EaWprc3RyYUl0ZXJhdGlvblN0cmF0ZWd5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBR0EsMkVBQXNFO0FBRXRFO0lBQUE7SUFLQSxDQUFDO0lBSFEsa0RBQWMsR0FBckIsVUFBc0IsS0FBZ0I7UUFDcEMsT0FBTyxJQUFJLCtCQUFxQixDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzFDLENBQUM7SUFDSCxnQ0FBQztBQUFELENBQUMsQUFMRCxJQUtDIn0=
@@ -1,19 +0,0 @@
1
- import IGraph from "../../../types/IGraph";
2
- /**
3
- * Get graph adjacency list
4
- *
5
- * @example
6
- *
7
- * Directed graph:
8
- * - Bob [Maria]
9
- * - Maria [Bob, John]
10
- * - John []
11
- *
12
- * @example
13
- *
14
- * Undirected graph:
15
- * - Bob [Maria]
16
- * - Maria [Bob, John]
17
- * - John [Maria]
18
- **/
19
- export declare const presenterAdjacencyLists: <T>(graph: IGraph<T>) => Map<T, T[]>;
@@ -1,28 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.presenterAdjacencyLists = void 0;
4
- /**
5
- * Get graph adjacency list
6
- *
7
- * @example
8
- *
9
- * Directed graph:
10
- * - Bob [Maria]
11
- * - Maria [Bob, John]
12
- * - John []
13
- *
14
- * @example
15
- *
16
- * Undirected graph:
17
- * - Bob [Maria]
18
- * - Maria [Bob, John]
19
- * - John [Maria]
20
- **/
21
- exports.presenterAdjacencyLists = function (graph) {
22
- return graph.vertices().reduce(function (map, vertex) {
23
- var neighbors = graph.getVertexNeighbors(vertex);
24
- map.set(vertex, neighbors);
25
- return map;
26
- }, new Map());
27
- };
28
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJlc2VudGVyQWRqYWNlbmN5TGlzdHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvYXBwL2FsZ29yaXRobXMvZ3JhcGgvcHJlc2VudGVyL3ByZXNlbnRlckFkamFjZW5jeUxpc3RzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUVBOzs7Ozs7Ozs7Ozs7Ozs7O0lBZ0JJO0FBQ1MsUUFBQSx1QkFBdUIsR0FBRyxVQUNyQyxLQUFnQjtJQUVoQixPQUFPLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQyxNQUFNLENBQUMsVUFBQyxHQUFxQixFQUFFLE1BQVM7UUFDOUQsSUFBTSxTQUFTLEdBQUcsS0FBSyxDQUFDLGtCQUFrQixDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ25ELEdBQUcsQ0FBQyxHQUFHLENBQUMsTUFBTSxFQUFFLFNBQVMsQ0FBQyxDQUFDO1FBRTNCLE9BQU8sR0FBRyxDQUFDO0lBQ2IsQ0FBQyxFQUFFLElBQUksR0FBRyxFQUFFLENBQUMsQ0FBQztBQUNoQixDQUFDLENBQUMifQ==
@@ -1,32 +0,0 @@
1
- import IGraph from "../../../types/IGraph";
2
- import { TypeArrayMatrix } from "../../../types/TypeArrayMatrix";
3
- /**
4
- * Get graph adjacency matrix N x N
5
- *
6
- * @example
7
- *
8
- * Directed graph:
9
- * - Bob [Maria]
10
- * - Maria [Bob, John]
11
- * - John []
12
- *
13
- * Its matrix:
14
- * | Bob | Maria | John |
15
- * Bob | 0 | 1 | 0 |
16
- * Maria | 1 | 0 | 1 |
17
- * John | 0 | 0 | 0 |
18
- *
19
- * @example
20
- *
21
- * Undirected graph:
22
- * - Bob [Maria]
23
- * - Maria [Bob, John]
24
- * - John [Maria]
25
- *
26
- * Its matrix:
27
- * | Bob | Maria | John |
28
- * Bob | 0 | 1 | 0 |
29
- * Maria | 1 | 0 | 1 |
30
- * John | 0 | 1 | 0 |
31
- */
32
- export declare const presenterAdjacencyMatrix: <T>(graph: IGraph<T>) => TypeArrayMatrix;
@@ -1,48 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.presenterAdjacencyMatrix = void 0;
4
- var constants_1 = require("../../../constants");
5
- /**
6
- * Get graph adjacency matrix N x N
7
- *
8
- * @example
9
- *
10
- * Directed graph:
11
- * - Bob [Maria]
12
- * - Maria [Bob, John]
13
- * - John []
14
- *
15
- * Its matrix:
16
- * | Bob | Maria | John |
17
- * Bob | 0 | 1 | 0 |
18
- * Maria | 1 | 0 | 1 |
19
- * John | 0 | 0 | 0 |
20
- *
21
- * @example
22
- *
23
- * Undirected graph:
24
- * - Bob [Maria]
25
- * - Maria [Bob, John]
26
- * - John [Maria]
27
- *
28
- * Its matrix:
29
- * | Bob | Maria | John |
30
- * Bob | 0 | 1 | 0 |
31
- * Maria | 1 | 0 | 1 |
32
- * John | 0 | 1 | 0 |
33
- */
34
- exports.presenterAdjacencyMatrix = function (graph) {
35
- var vertices = graph.vertices();
36
- var matrix = new Array(graph.verticesCount());
37
- vertices.forEach(function (graphVertexRow, rowIndex) {
38
- matrix[rowIndex] = new Array(graph.verticesCount());
39
- vertices.forEach(function (graphVertexColumn, columnIndex) {
40
- var isElementLinked = graph.hasEdge(graphVertexRow, graphVertexColumn);
41
- matrix[rowIndex][columnIndex] = isElementLinked
42
- ? constants_1.EDGE_EXISTS_STATE
43
- : constants_1.EDGE_NOT_EXISTS_STATE;
44
- });
45
- });
46
- return matrix;
47
- };
48
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJlc2VudGVyQWRqYWNlbmN5TWF0cml4LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9hbGdvcml0aG1zL2dyYXBoL3ByZXNlbnRlci9wcmVzZW50ZXJBZGphY2VuY3lNYXRyaXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQ0EsZ0RBQThFO0FBRzlFOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBNEJHO0FBQ1UsUUFBQSx3QkFBd0IsR0FBRyxVQUN0QyxLQUFnQjtJQUVoQixJQUFNLFFBQVEsR0FBRyxLQUFLLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDbEMsSUFBTSxNQUFNLEdBQUcsSUFBSSxLQUFLLENBQUMsS0FBSyxDQUFDLGFBQWEsRUFBRSxDQUFDLENBQUM7SUFFaEQsUUFBUSxDQUFDLE9BQU8sQ0FBQyxVQUFDLGNBQWMsRUFBRSxRQUFRO1FBQ3hDLE1BQU0sQ0FBQyxRQUFRLENBQUMsR0FBRyxJQUFJLEtBQUssQ0FBQyxLQUFLLENBQUMsYUFBYSxFQUFFLENBQUMsQ0FBQztRQUVwRCxRQUFRLENBQUMsT0FBTyxDQUFDLFVBQUMsaUJBQWlCLEVBQUUsV0FBVztZQUM5QyxJQUFNLGVBQWUsR0FBRyxLQUFLLENBQUMsT0FBTyxDQUFDLGNBQWMsRUFBRSxpQkFBaUIsQ0FBQyxDQUFDO1lBRXpFLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQyxXQUFXLENBQUMsR0FBRyxlQUFlO2dCQUM3QyxDQUFDLENBQUMsNkJBQWlCO2dCQUNuQixDQUFDLENBQUMsaUNBQXFCLENBQUM7UUFDNUIsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDLENBQUMsQ0FBQztJQUVILE9BQU8sTUFBTSxDQUFDO0FBQ2hCLENBQUMsQ0FBQyJ9
@@ -1,9 +0,0 @@
1
- import IGraph from "../../../types/IGraph";
2
- import IGraphIterationStrategy from "../../../types/IGraphIterationStrategy";
3
- /**
4
- * Check if graph has a path between two vertices
5
- * @throws {IsNotFoundException} when start vertex was not found
6
- * @throws {IsNotFoundException} when end vertex was not found
7
- * @throws {IllegalStateException} when there is no path between two vertices
8
- */
9
- export declare const hasPath: <T>(graph: IGraph<T>, from: T, to: T, strategy: IGraphIterationStrategy<T>) => boolean;
@@ -1,30 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.hasPath = void 0;
4
- var IsNotFoundException_1 = require("../../../exceptions/IsNotFoundException");
5
- /**
6
- * Check if graph has a path between two vertices
7
- * @throws {IsNotFoundException} when start vertex was not found
8
- * @throws {IsNotFoundException} when end vertex was not found
9
- * @throws {IllegalStateException} when there is no path between two vertices
10
- */
11
- exports.hasPath = function (graph, from, to, strategy) {
12
- /* Validate */
13
- if (!graph.hasVertex(from)) {
14
- throw new IsNotFoundException_1.default("Start vertex was not found");
15
- }
16
- if (!graph.hasVertex(to)) {
17
- throw new IsNotFoundException_1.default("End vertex was not found");
18
- }
19
- var iterator = strategy.createIterator(graph);
20
- iterator.initIterator(from);
21
- /* Find target element */
22
- while (iterator.hasNext()) {
23
- var next = iterator.next();
24
- if (next === to) {
25
- return true;
26
- }
27
- }
28
- return false;
29
- };
30
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGFzUGF0aC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvYWxnb3JpdGhtcy9ncmFwaC9zZWFyY2hpbmcvaGFzUGF0aC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFHQSwrRUFBMEU7QUFFMUU7Ozs7O0dBS0c7QUFDVSxRQUFBLE9BQU8sR0FBRyxVQUNyQixLQUFnQixFQUNoQixJQUFPLEVBQ1AsRUFBSyxFQUNMLFFBQW9DO0lBRXBDLGNBQWM7SUFDZCxJQUFJLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsRUFBRTtRQUMxQixNQUFNLElBQUksNkJBQW1CLENBQUMsNEJBQTRCLENBQUMsQ0FBQztLQUM3RDtJQUNELElBQUksQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQyxFQUFFO1FBQ3hCLE1BQU0sSUFBSSw2QkFBbUIsQ0FBQywwQkFBMEIsQ0FBQyxDQUFDO0tBQzNEO0lBRUQsSUFBTSxRQUFRLEdBQXNCLFFBQVEsQ0FBQyxjQUFjLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDbkUsUUFBUSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUU1Qix5QkFBeUI7SUFDekIsT0FBTyxRQUFRLENBQUMsT0FBTyxFQUFFLEVBQUU7UUFDekIsSUFBTSxJQUFJLEdBQUcsUUFBUSxDQUFDLElBQUksRUFBRSxDQUFDO1FBRTdCLElBQUksSUFBSSxLQUFLLEVBQUUsRUFBRTtZQUNmLE9BQU8sSUFBSSxDQUFDO1NBQ2I7S0FDRjtJQUVELE9BQU8sS0FBSyxDQUFDO0FBQ2YsQ0FBQyxDQUFDIn0=
@@ -1,9 +0,0 @@
1
- import IGraph from "../../../types/IGraph";
2
- import IGraphIterationStrategy from "../../../types/IGraphIterationStrategy";
3
- /**
4
- * Find the shortest path between two vertices
5
- * @throws {IsNotFoundException} when start vertex was not found
6
- * @throws {IsNotFoundException} when end vertex was not found
7
- * @throws {IllegalStateException} when there is no path between two vertices
8
- */
9
- export declare const shortestPath: <T>(graph: IGraph<T>, from: T, to: T, strategy: IGraphIterationStrategy<T>) => T[];
@@ -1,30 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.shortestPath = void 0;
4
- var IsNotFoundException_1 = require("../../../exceptions/IsNotFoundException");
5
- /**
6
- * Find the shortest path between two vertices
7
- * @throws {IsNotFoundException} when start vertex was not found
8
- * @throws {IsNotFoundException} when end vertex was not found
9
- * @throws {IllegalStateException} when there is no path between two vertices
10
- */
11
- exports.shortestPath = function (graph, from, to, strategy) {
12
- /* Validate */
13
- if (!graph.hasVertex(from)) {
14
- throw new IsNotFoundException_1.default("Start vertex was not found");
15
- }
16
- if (!graph.hasVertex(to)) {
17
- throw new IsNotFoundException_1.default("End vertex was not found");
18
- }
19
- var iterator = strategy.createIterator(graph);
20
- iterator.initIterator(from);
21
- /* Find target element */
22
- while (iterator.hasNext()) {
23
- var next = iterator.next();
24
- if (next === to) {
25
- break;
26
- }
27
- }
28
- return iterator.getPath(from, to);
29
- };
30
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2hvcnRlc3RQYXRoLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9hbGdvcml0aG1zL2dyYXBoL3NlYXJjaGluZy9zaG9ydGVzdFBhdGgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBR0EsK0VBQTBFO0FBRTFFOzs7OztHQUtHO0FBQ1UsUUFBQSxZQUFZLEdBQUcsVUFDMUIsS0FBZ0IsRUFDaEIsSUFBTyxFQUNQLEVBQUssRUFDTCxRQUFvQztJQUVwQyxjQUFjO0lBQ2QsSUFBSSxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLEVBQUU7UUFDMUIsTUFBTSxJQUFJLDZCQUFtQixDQUFDLDRCQUE0QixDQUFDLENBQUM7S0FDN0Q7SUFDRCxJQUFJLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUMsRUFBRTtRQUN4QixNQUFNLElBQUksNkJBQW1CLENBQUMsMEJBQTBCLENBQUMsQ0FBQztLQUMzRDtJQUVELElBQU0sUUFBUSxHQUFzQixRQUFRLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ25FLFFBQVEsQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLENBQUM7SUFFNUIseUJBQXlCO0lBQ3pCLE9BQU8sUUFBUSxDQUFDLE9BQU8sRUFBRSxFQUFFO1FBQ3pCLElBQU0sSUFBSSxHQUFHLFFBQVEsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUU3QixJQUFJLElBQUksS0FBSyxFQUFFLEVBQUU7WUFDZixNQUFNO1NBQ1A7S0FDRjtJQUVELE9BQU8sUUFBUSxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLENBQUM7QUFDcEMsQ0FBQyxDQUFDIn0=
@@ -1,2 +0,0 @@
1
- import IGraph from "../../../types/IGraph";
2
- export declare const transposeDirectedGraph: <T>(sourceGraph: IGraph<T>) => IGraph<T>;
@@ -1,14 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.transposeDirectedGraph = void 0;
4
- var createGraphFromMatrix_1 = require("../../../data-structures/Graph/_helpers/createGraphFromMatrix");
5
- var EnumGraphType_1 = require("../../../types/EnumGraphType");
6
- var presenterAdjacencyMatrix_1 = require("../presenter/presenterAdjacencyMatrix");
7
- var transpose_matrix_1 = require("../../transpose-matrix");
8
- exports.transposeDirectedGraph = function (sourceGraph) {
9
- var verticesList = sourceGraph.vertices();
10
- var matrix = presenterAdjacencyMatrix_1.presenterAdjacencyMatrix(sourceGraph);
11
- var transposedMatrix = transpose_matrix_1.transposeMatrix(matrix);
12
- return createGraphFromMatrix_1.createGraphFromMatrix(transposedMatrix, verticesList, EnumGraphType_1.EnumGraphType.DIRECTED);
13
- };
14
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNwb3NlRGlyZWN0ZWRHcmFwaC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvYWxnb3JpdGhtcy9ncmFwaC90cmFuc3Bvc2luZy90cmFuc3Bvc2VEaXJlY3RlZEdyYXBoLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUNBLHVHQUFzRztBQUN0Ryw4REFBNkQ7QUFDN0Qsa0ZBQWlGO0FBQ2pGLDJEQUF5RDtBQUU1QyxRQUFBLHNCQUFzQixHQUFHLFVBQ3BDLFdBQXNCO0lBRXRCLElBQU0sWUFBWSxHQUFHLFdBQVcsQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUM1QyxJQUFNLE1BQU0sR0FBRyxtREFBd0IsQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUNyRCxJQUFNLGdCQUFnQixHQUFHLGtDQUFlLENBQUMsTUFBTSxDQUFDLENBQUM7SUFFakQsT0FBTyw2Q0FBcUIsQ0FDMUIsZ0JBQWdCLEVBQ2hCLFlBQVksRUFDWiw2QkFBYSxDQUFDLFFBQVEsQ0FDdkIsQ0FBQztBQUNKLENBQUMsQ0FBQyJ9
@@ -1,5 +0,0 @@
1
- import { FnToMemoize } from "../types/FnToMemoize";
2
- /**
3
- * Wrapper function that storing the results of calls and returning the cached result when the same inputs occur again
4
- */
5
- export declare const memoize: <Key, Value>(fn: FnToMemoize<Key, Value>) => FnToMemoize<Key, Value>;
@@ -1,22 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.memoize = void 0;
4
- /**
5
- * Wrapper function that storing the results of calls and returning the cached result when the same inputs occur again
6
- */
7
- exports.memoize = function (fn) {
8
- var cache = new Map();
9
- return function () {
10
- var args = [];
11
- for (var _i = 0; _i < arguments.length; _i++) {
12
- args[_i] = arguments[_i];
13
- }
14
- var jsonArgs = JSON.stringify(args);
15
- if (!cache.has(jsonArgs)) {
16
- var result = fn.apply(void 0, args);
17
- cache.set(jsonArgs, result);
18
- }
19
- return cache.get(jsonArgs);
20
- };
21
- };
22
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVtb2l6ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9hcHAvYWxnb3JpdGhtcy9tZW1vaXplLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUVBOztHQUVHO0FBQ1UsUUFBQSxPQUFPLEdBQUcsVUFDckIsRUFBMkI7SUFFM0IsSUFBTSxLQUFLLEdBQUcsSUFBSSxHQUFHLEVBQWlCLENBQUM7SUFFdkMsT0FBTztRQUFDLGNBQW1CO2FBQW5CLFVBQW1CLEVBQW5CLHFCQUFtQixFQUFuQixJQUFtQjtZQUFuQix5QkFBbUI7O1FBQ3pCLElBQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUM7UUFFdEMsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLEVBQUU7WUFDeEIsSUFBTSxNQUFNLEdBQUcsRUFBRSxlQUFJLElBQUksQ0FBQyxDQUFDO1lBQzNCLEtBQUssQ0FBQyxHQUFHLENBQUMsUUFBUSxFQUFFLE1BQU0sQ0FBQyxDQUFDO1NBQzdCO1FBRUQsT0FBYyxLQUFLLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ3BDLENBQUMsQ0FBQztBQUNKLENBQUMsQ0FBQyJ9
@@ -1,9 +0,0 @@
1
- /**
2
- * Bubble sorting algorithm
3
- *
4
- * @description
5
- * Time complexity: Best O(n); Avg O(n \^ 2); Worst O(n \^ 2)
6
- * @description
7
- * Memory complexity: Worst case: O(1)
8
- */
9
- export declare const bubbleSort: (arr: Array<number>) => Array<number>;
@@ -1,23 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.bubbleSort = void 0;
4
- var utils_1 = require("../../utils");
5
- /**
6
- * Bubble sorting algorithm
7
- *
8
- * @description
9
- * Time complexity: Best O(n); Avg O(n \^ 2); Worst O(n \^ 2)
10
- * @description
11
- * Memory complexity: Worst case: O(1)
12
- */
13
- exports.bubbleSort = function (arr) {
14
- for (var i = 0; i < arr.length - 1; i++) {
15
- for (var j = 0; j < arr.length - 1; j++) {
16
- if (arr[j] > arr[j + 1]) {
17
- utils_1.swapArrayItems(arr, j, j + 1);
18
- }
19
- }
20
- }
21
- return arr;
22
- };
23
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnViYmxlLXNvcnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvYXBwL2FsZ29yaXRobXMvc29ydHMvYnViYmxlLXNvcnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEscUNBQTZDO0FBRTdDOzs7Ozs7O0dBT0c7QUFDVSxRQUFBLFVBQVUsR0FBRyxVQUFDLEdBQWtCO0lBQzNDLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxHQUFHLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRTtRQUN2QyxLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsR0FBRyxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUU7WUFDdkMsSUFBSSxHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUcsR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRTtnQkFDdkIsc0JBQWMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQzthQUMvQjtTQUNGO0tBQ0Y7SUFFRCxPQUFPLEdBQUcsQ0FBQztBQUNiLENBQUMsQ0FBQyJ9
@@ -1,9 +0,0 @@
1
- /**
2
- * Insertion sorting algorithm
3
- *
4
- * @description
5
- * Time complexity: Best O(n); Avg O(n \^ 2); Worst O(n \^ 2);
6
- * @description
7
- * Memory complexity: Worst case: O(1)
8
- */
9
- export declare const insertionSort: (arr: Array<number>) => Array<number>;
@@ -1,25 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.insertionSort = void 0;
4
- var utils_1 = require("../../utils");
5
- /**
6
- * Insertion sorting algorithm
7
- *
8
- * @description
9
- * Time complexity: Best O(n); Avg O(n \^ 2); Worst O(n \^ 2);
10
- * @description
11
- * Memory complexity: Worst case: O(1)
12
- */
13
- exports.insertionSort = function (arr) {
14
- for (var i = 1; i < arr.length; i++) {
15
- var current = arr[i];
16
- var j = i - 1;
17
- while (j >= 0 && arr[j] > current) {
18
- utils_1.swapArrayItems(arr, j + 1, j);
19
- j--;
20
- }
21
- arr[j + 1] = current;
22
- }
23
- return arr;
24
- };
25
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5zZXJ0aW9uLXNvcnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvYXBwL2FsZ29yaXRobXMvc29ydHMvaW5zZXJ0aW9uLXNvcnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEscUNBQTZDO0FBRTdDOzs7Ozs7O0dBT0c7QUFDVSxRQUFBLGFBQWEsR0FBRyxVQUFDLEdBQWtCO0lBQzlDLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxHQUFHLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFO1FBQ25DLElBQU0sT0FBTyxHQUFHLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUN2QixJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBRWQsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRyxPQUFPLEVBQUU7WUFDakMsc0JBQWMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztZQUM5QixDQUFDLEVBQUUsQ0FBQztTQUNMO1FBRUQsR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxPQUFPLENBQUM7S0FDdEI7SUFFRCxPQUFPLEdBQUcsQ0FBQztBQUNiLENBQUMsQ0FBQyJ9
@@ -1,9 +0,0 @@
1
- /**
2
- * Merge sorting algorithm
3
- *
4
- * @description
5
- * Time complexity: Best O(n * log(n)); Avg O(n * log(n)); Worst O(n * log(n))
6
- * @description
7
- * Memory complexity: Worst case: O(n)
8
- */
9
- export declare const mergeSort: (arr: Array<number>) => Array<number>;
@@ -1,61 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.mergeSort = void 0;
4
- /**
5
- * Merge two sorted arrays into one array
6
- */
7
- var merge = function (arr, leftIndex, midIndex, rightIndex) {
8
- var container = arr.slice(leftIndex, rightIndex + 1);
9
- var resultArrIndex = leftIndex;
10
- var leftHalfIndex = leftIndex;
11
- var rightHalfIndex = midIndex + 1;
12
- /** While both halves of array are not ended */
13
- while (leftHalfIndex <= midIndex && rightHalfIndex <= rightIndex) {
14
- var leftHalfElement = container[leftHalfIndex - leftIndex];
15
- var rightHalfElement = container[rightHalfIndex - leftIndex];
16
- if (leftHalfElement < rightHalfElement) {
17
- arr[resultArrIndex] = leftHalfElement;
18
- leftHalfIndex++;
19
- }
20
- else {
21
- arr[resultArrIndex] = rightHalfElement;
22
- rightHalfIndex++;
23
- }
24
- resultArrIndex++;
25
- }
26
- /** If one of halves is ended, the remaining one will just be pushed to result */
27
- while (leftHalfIndex <= midIndex) {
28
- arr[resultArrIndex] = container[leftHalfIndex - leftIndex];
29
- resultArrIndex++;
30
- leftHalfIndex++;
31
- }
32
- while (rightHalfIndex <= rightIndex) {
33
- arr[resultArrIndex] = container[rightHalfIndex - leftIndex];
34
- resultArrIndex++;
35
- rightHalfIndex++;
36
- }
37
- };
38
- /**
39
- * Divide array into 2 halves and merge them
40
- */
41
- var sortRange = function (arr, leftIndex, rightIndex) {
42
- if (rightIndex > leftIndex) {
43
- var midIndex = Math.floor(leftIndex + (rightIndex - leftIndex) / 2);
44
- sortRange(arr, leftIndex, midIndex);
45
- sortRange(arr, midIndex + 1, rightIndex);
46
- merge(arr, leftIndex, midIndex, rightIndex);
47
- }
48
- };
49
- /**
50
- * Merge sorting algorithm
51
- *
52
- * @description
53
- * Time complexity: Best O(n * log(n)); Avg O(n * log(n)); Worst O(n * log(n))
54
- * @description
55
- * Memory complexity: Worst case: O(n)
56
- */
57
- exports.mergeSort = function (arr) {
58
- sortRange(arr, 0, arr.length - 1);
59
- return arr;
60
- };
61
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVyZ2Utc29ydC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9hcHAvYWxnb3JpdGhtcy9zb3J0cy9tZXJnZS1zb3J0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBOztHQUVHO0FBQ0gsSUFBTSxLQUFLLEdBQUcsVUFDWixHQUFrQixFQUNsQixTQUFpQixFQUNqQixRQUFnQixFQUNoQixVQUFrQjtJQUVsQixJQUFNLFNBQVMsR0FBRyxHQUFHLENBQUMsS0FBSyxDQUFDLFNBQVMsRUFBRSxVQUFVLEdBQUcsQ0FBQyxDQUFDLENBQUM7SUFFdkQsSUFBSSxjQUFjLEdBQUcsU0FBUyxDQUFDO0lBQy9CLElBQUksYUFBYSxHQUFHLFNBQVMsQ0FBQztJQUM5QixJQUFJLGNBQWMsR0FBRyxRQUFRLEdBQUcsQ0FBQyxDQUFDO0lBRWxDLCtDQUErQztJQUMvQyxPQUFPLGFBQWEsSUFBSSxRQUFRLElBQUksY0FBYyxJQUFJLFVBQVUsRUFBRTtRQUNoRSxJQUFNLGVBQWUsR0FBRyxTQUFTLENBQUMsYUFBYSxHQUFHLFNBQVMsQ0FBQyxDQUFDO1FBQzdELElBQU0sZ0JBQWdCLEdBQUcsU0FBUyxDQUFDLGNBQWMsR0FBRyxTQUFTLENBQUMsQ0FBQztRQUUvRCxJQUFJLGVBQWUsR0FBRyxnQkFBZ0IsRUFBRTtZQUN0QyxHQUFHLENBQUMsY0FBYyxDQUFDLEdBQUcsZUFBZSxDQUFDO1lBQ3RDLGFBQWEsRUFBRSxDQUFDO1NBQ2pCO2FBQU07WUFDTCxHQUFHLENBQUMsY0FBYyxDQUFDLEdBQUcsZ0JBQWdCLENBQUM7WUFDdkMsY0FBYyxFQUFFLENBQUM7U0FDbEI7UUFDRCxjQUFjLEVBQUUsQ0FBQztLQUNsQjtJQUVELGlGQUFpRjtJQUNqRixPQUFPLGFBQWEsSUFBSSxRQUFRLEVBQUU7UUFDaEMsR0FBRyxDQUFDLGNBQWMsQ0FBQyxHQUFHLFNBQVMsQ0FBQyxhQUFhLEdBQUcsU0FBUyxDQUFDLENBQUM7UUFDM0QsY0FBYyxFQUFFLENBQUM7UUFDakIsYUFBYSxFQUFFLENBQUM7S0FDakI7SUFDRCxPQUFPLGNBQWMsSUFBSSxVQUFVLEVBQUU7UUFDbkMsR0FBRyxDQUFDLGNBQWMsQ0FBQyxHQUFHLFNBQVMsQ0FBQyxjQUFjLEdBQUcsU0FBUyxDQUFDLENBQUM7UUFDNUQsY0FBYyxFQUFFLENBQUM7UUFDakIsY0FBYyxFQUFFLENBQUM7S0FDbEI7QUFDSCxDQUFDLENBQUM7QUFFRjs7R0FFRztBQUNILElBQU0sU0FBUyxHQUFHLFVBQ2hCLEdBQWtCLEVBQ2xCLFNBQWlCLEVBQ2pCLFVBQWtCO0lBRWxCLElBQUksVUFBVSxHQUFHLFNBQVMsRUFBRTtRQUMxQixJQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLFNBQVMsR0FBRyxDQUFDLFVBQVUsR0FBRyxTQUFTLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztRQUV0RSxTQUFTLENBQUMsR0FBRyxFQUFFLFNBQVMsRUFBRSxRQUFRLENBQUMsQ0FBQztRQUNwQyxTQUFTLENBQUMsR0FBRyxFQUFFLFFBQVEsR0FBRyxDQUFDLEVBQUUsVUFBVSxDQUFDLENBQUM7UUFFekMsS0FBSyxDQUFDLEdBQUcsRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLFVBQVUsQ0FBQyxDQUFDO0tBQzdDO0FBQ0gsQ0FBQyxDQUFDO0FBRUY7Ozs7Ozs7R0FPRztBQUNVLFFBQUEsU0FBUyxHQUFHLFVBQUMsR0FBa0I7SUFDMUMsU0FBUyxDQUFDLEdBQUcsRUFBRSxDQUFDLEVBQUUsR0FBRyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQztJQUVsQyxPQUFPLEdBQUcsQ0FBQztBQUNiLENBQUMsQ0FBQyJ9
@@ -1,9 +0,0 @@
1
- /**
2
- * Quick sort algorithm
3
- *
4
- * @description
5
- * Time complexity: Best O(n * log(n)); Avg O(n * log(n)); Worst O(n ^2)
6
- * @description
7
- * Memory complexity: Worst case: O(1)
8
- */
9
- export declare const quickSort: (arr: Array<number>) => Array<number>;