@raikuxq/alg-ds 1.1.6 → 1.1.7

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 (177) hide show
  1. package/lib/algorithms/binary-search.d.ts +5 -0
  2. package/lib/algorithms/binary-search.js +27 -0
  3. package/lib/algorithms/factorial.d.ts +9 -0
  4. package/lib/algorithms/factorial.js +17 -0
  5. package/lib/algorithms/fibonacci.d.ts +9 -0
  6. package/lib/algorithms/fibonacci.js +17 -0
  7. package/lib/algorithms/memoize.d.ts +5 -0
  8. package/lib/algorithms/memoize.js +22 -0
  9. package/lib/algorithms/sorts/bubble-sort.d.ts +9 -0
  10. package/lib/algorithms/sorts/bubble-sort.js +23 -0
  11. package/lib/algorithms/sorts/insertion-sort.d.ts +9 -0
  12. package/lib/algorithms/sorts/insertion-sort.js +25 -0
  13. package/lib/algorithms/sorts/merge-sort.d.ts +9 -0
  14. package/lib/algorithms/sorts/merge-sort.js +61 -0
  15. package/lib/algorithms/sorts/quick-sort.d.ts +9 -0
  16. package/lib/algorithms/sorts/quick-sort.js +45 -0
  17. package/lib/algorithms/sorts/select-sort.d.ts +9 -0
  18. package/lib/algorithms/sorts/select-sort.js +20 -0
  19. package/lib/algorithms/transpose-matrix.d.ts +5 -0
  20. package/lib/algorithms/transpose-matrix.js +18 -0
  21. package/lib/constants.d.ts +2 -0
  22. package/lib/constants.js +6 -0
  23. package/lib/data-structures/BinaryTree/AbstractBinaryTree/AbstractBinaryNode.d.ts +15 -0
  24. package/lib/data-structures/BinaryTree/AbstractBinaryTree/AbstractBinaryNode.js +53 -0
  25. package/lib/data-structures/BinaryTree/AbstractBinaryTree/AbstractBinaryTree.d.ts +60 -0
  26. package/lib/data-structures/BinaryTree/AbstractBinaryTree/AbstractBinaryTree.js +36 -0
  27. package/lib/data-structures/BinaryTree/BinarySearchTree/BinarySearchNode.d.ts +13 -0
  28. package/lib/data-structures/BinaryTree/BinarySearchTree/BinarySearchNode.js +59 -0
  29. package/lib/data-structures/BinaryTree/BinarySearchTree/BinarySearchTree.d.ts +70 -0
  30. package/lib/data-structures/BinaryTree/BinarySearchTree/BinarySearchTree.js +271 -0
  31. package/lib/data-structures/BinaryTree/RandBinarySearchTree/RandBinarySearchNode.d.ts +16 -0
  32. package/lib/data-structures/BinaryTree/RandBinarySearchTree/RandBinarySearchNode.js +70 -0
  33. package/lib/data-structures/BinaryTree/RandBinarySearchTree/RandBinarySearchTree.d.ts +57 -0
  34. package/lib/data-structures/BinaryTree/RandBinarySearchTree/RandBinarySearchTree.js +235 -0
  35. package/lib/data-structures/Graph/AbstractGraph.d.ts +84 -0
  36. package/lib/data-structures/Graph/AbstractGraph.js +143 -0
  37. package/lib/data-structures/Graph/DirectedGraph.d.ts +24 -0
  38. package/lib/data-structures/Graph/DirectedGraph.js +86 -0
  39. package/lib/data-structures/Graph/GraphEdge.d.ts +16 -0
  40. package/lib/data-structures/Graph/GraphEdge.js +43 -0
  41. package/lib/data-structures/Graph/UndirectedGraph.d.ts +28 -0
  42. package/lib/data-structures/Graph/UndirectedGraph.js +103 -0
  43. package/lib/data-structures/Graph/demo/generateRandomGraph.d.ts +4 -0
  44. package/lib/data-structures/Graph/demo/generateRandomGraph.js +66 -0
  45. package/lib/data-structures/Graph/iterator/AbstractGraphIterator.d.ts +35 -0
  46. package/lib/data-structures/Graph/iterator/AbstractGraphIterator.js +90 -0
  47. package/lib/data-structures/Graph/iterator/GraphIteratorBFS.d.ts +28 -0
  48. package/lib/data-structures/Graph/iterator/GraphIteratorBFS.js +70 -0
  49. package/lib/data-structures/Graph/iterator/GraphIteratorDFS.d.ts +28 -0
  50. package/lib/data-structures/Graph/iterator/GraphIteratorDFS.js +70 -0
  51. package/lib/data-structures/Graph/iterator/GraphIteratorDijkstra.d.ts +32 -0
  52. package/lib/data-structures/Graph/iterator/GraphIteratorDijkstra.js +99 -0
  53. package/lib/data-structures/Graph/presenter/presenterAdjacencyLists.d.ts +19 -0
  54. package/lib/data-structures/Graph/presenter/presenterAdjacencyLists.js +28 -0
  55. package/lib/data-structures/Graph/presenter/presenterAdjacencyMatrix.d.ts +32 -0
  56. package/lib/data-structures/Graph/presenter/presenterAdjacencyMatrix.js +48 -0
  57. package/lib/data-structures/Graph/searching/hasPath.d.ts +9 -0
  58. package/lib/data-structures/Graph/searching/hasPath.js +30 -0
  59. package/lib/data-structures/Graph/searching/shortestPath.d.ts +9 -0
  60. package/lib/data-structures/Graph/searching/shortestPath.js +30 -0
  61. package/lib/data-structures/Graph/strategy/BFSIterationStrategy.d.ts +6 -0
  62. package/lib/data-structures/Graph/strategy/BFSIterationStrategy.js +13 -0
  63. package/lib/data-structures/Graph/strategy/DFSIterationStrategy.d.ts +6 -0
  64. package/lib/data-structures/Graph/strategy/DFSIterationStrategy.js +13 -0
  65. package/lib/data-structures/Graph/strategy/DijkstraIterationStrategy.d.ts +6 -0
  66. package/lib/data-structures/Graph/strategy/DijkstraIterationStrategy.js +13 -0
  67. package/lib/data-structures/Graph/transposing/transposeDirectedGraph.d.ts +2 -0
  68. package/lib/data-structures/Graph/transposing/transposeDirectedGraph.js +14 -0
  69. package/lib/data-structures/HashTable/HashTable.d.ts +73 -0
  70. package/lib/data-structures/HashTable/HashTable.js +171 -0
  71. package/lib/data-structures/HashTable/HashTableNode.d.ts +11 -0
  72. package/lib/data-structures/HashTable/HashTableNode.js +39 -0
  73. package/lib/data-structures/LinkedList/AbstractLinkedList/AbstractLinkedList.d.ts +125 -0
  74. package/lib/data-structures/LinkedList/AbstractLinkedList/AbstractLinkedList.js +241 -0
  75. package/lib/data-structures/LinkedList/AbstractLinkedList/AbstractLinkedNode.d.ts +20 -0
  76. package/lib/data-structures/LinkedList/AbstractLinkedList/AbstractLinkedNode.js +41 -0
  77. package/lib/data-structures/LinkedList/DoubleLinkedList/DoubleLinkedList.d.ts +48 -0
  78. package/lib/data-structures/LinkedList/DoubleLinkedList/DoubleLinkedList.js +151 -0
  79. package/lib/data-structures/LinkedList/DoubleLinkedList/DoubleLinkedNode.d.ts +25 -0
  80. package/lib/data-structures/LinkedList/DoubleLinkedList/DoubleLinkedNode.js +65 -0
  81. package/lib/data-structures/LinkedList/SingleLinkedList/SingleLinkedList.d.ts +52 -0
  82. package/lib/data-structures/LinkedList/SingleLinkedList/SingleLinkedList.js +138 -0
  83. package/lib/data-structures/LinkedList/SingleLinkedList/SingleLinkedNode.d.ts +7 -0
  84. package/lib/data-structures/LinkedList/SingleLinkedList/SingleLinkedNode.js +29 -0
  85. package/lib/data-structures/LoopedArray/LoopedArray.d.ts +83 -0
  86. package/lib/data-structures/LoopedArray/LoopedArray.js +169 -0
  87. package/lib/data-structures/Queue/Queue.d.ts +50 -0
  88. package/lib/data-structures/Queue/Queue.js +85 -0
  89. package/lib/data-structures/Stack/Stack.d.ts +50 -0
  90. package/lib/data-structures/Stack/Stack.js +85 -0
  91. package/lib/exceptions/IllegalCapacityException.d.ts +4 -0
  92. package/lib/exceptions/IllegalCapacityException.js +28 -0
  93. package/lib/exceptions/IndexOutOfBoundsException.d.ts +4 -0
  94. package/lib/exceptions/IndexOutOfBoundsException.js +28 -0
  95. package/lib/exceptions/IsAlreadyExistsException.d.ts +4 -0
  96. package/lib/exceptions/IsAlreadyExistsException.js +28 -0
  97. package/lib/exceptions/IsEmptyException.d.ts +4 -0
  98. package/lib/exceptions/IsEmptyException.js +28 -0
  99. package/lib/exceptions/IsFullException.d.ts +4 -0
  100. package/lib/exceptions/IsFullException.js +28 -0
  101. package/lib/exceptions/IsNotFoundException.d.ts +4 -0
  102. package/lib/exceptions/IsNotFoundException.js +28 -0
  103. package/lib/exceptions/base/IllegalArgumentException.d.ts +3 -0
  104. package/lib/exceptions/base/IllegalArgumentException.js +27 -0
  105. package/lib/exceptions/base/IllegalStateException.d.ts +3 -0
  106. package/lib/exceptions/base/IllegalStateException.js +27 -0
  107. package/lib/exports/algorithms.d.ts +16 -0
  108. package/lib/exports/algorithms.js +36 -0
  109. package/lib/exports/constants.d.ts +2 -0
  110. package/lib/exports/constants.js +7 -0
  111. package/lib/exports/data-structures.d.ts +11 -0
  112. package/lib/exports/data-structures.js +24 -0
  113. package/lib/exports/helpers.d.ts +6 -0
  114. package/lib/exports/helpers.js +14 -0
  115. package/lib/exports/sorts.d.ts +6 -0
  116. package/lib/exports/sorts.js +14 -0
  117. package/lib/exports/utils.d.ts +3 -0
  118. package/lib/exports/utils.js +14 -0
  119. package/lib/exports.d.ts +52 -0
  120. package/lib/exports.js +103 -0
  121. package/lib/helpers/createBinaryTree.d.ts +6 -0
  122. package/lib/helpers/createBinaryTree.js +22 -0
  123. package/lib/helpers/createGraph.d.ts +6 -0
  124. package/lib/helpers/createGraph.js +24 -0
  125. package/lib/helpers/createGraphFromMatrix.d.ts +7 -0
  126. package/lib/helpers/createGraphFromMatrix.js +42 -0
  127. package/lib/helpers/createLinkedList.d.ts +3 -0
  128. package/lib/helpers/createLinkedList.js +21 -0
  129. package/lib/index.d.ts +3 -0
  130. package/lib/index.js +6 -0
  131. package/lib/types/ArrayMatrix.d.ts +1 -0
  132. package/lib/types/ArrayMatrix.js +3 -0
  133. package/lib/types/EnumBinarySearchTreeType.d.ts +4 -0
  134. package/lib/types/EnumBinarySearchTreeType.js +9 -0
  135. package/lib/types/EnumGraphType.d.ts +4 -0
  136. package/lib/types/EnumGraphType.js +9 -0
  137. package/lib/types/EnumLinkedListType.d.ts +4 -0
  138. package/lib/types/EnumLinkedListType.js +9 -0
  139. package/lib/types/EnumRandomGenerationFormat.d.ts +4 -0
  140. package/lib/types/EnumRandomGenerationFormat.js +9 -0
  141. package/lib/types/EnumTreeTraversalType.d.ts +5 -0
  142. package/lib/types/EnumTreeTraversalType.js +10 -0
  143. package/lib/types/FnCompareTwo.d.ts +1 -0
  144. package/lib/types/FnCompareTwo.js +3 -0
  145. package/lib/types/FnToMemoize.d.ts +1 -0
  146. package/lib/types/FnToMemoize.js +3 -0
  147. package/lib/types/IArrayFacade.d.ts +4 -0
  148. package/lib/types/IArrayFacade.js +3 -0
  149. package/lib/types/IBiDirectIterable.d.ts +5 -0
  150. package/lib/types/IBiDirectIterable.js +3 -0
  151. package/lib/types/IBiDirectIterator.d.ts +11 -0
  152. package/lib/types/IBiDirectIterator.js +3 -0
  153. package/lib/types/IBinaryTree.d.ts +12 -0
  154. package/lib/types/IBinaryTree.js +3 -0
  155. package/lib/types/IConvertableToArray.d.ts +4 -0
  156. package/lib/types/IConvertableToArray.js +3 -0
  157. package/lib/types/IGraph.d.ts +14 -0
  158. package/lib/types/IGraph.js +3 -0
  159. package/lib/types/IGraphIterationStrategy.d.ts +5 -0
  160. package/lib/types/IGraphIterationStrategy.js +3 -0
  161. package/lib/types/IGraphIterator.d.ts +11 -0
  162. package/lib/types/IGraphIterator.js +3 -0
  163. package/lib/types/IIterable.d.ts +4 -0
  164. package/lib/types/IIterable.js +3 -0
  165. package/lib/types/IIterator.d.ts +14 -0
  166. package/lib/types/IIterator.js +3 -0
  167. package/lib/types/IKeyValueStorage.d.ts +8 -0
  168. package/lib/types/IKeyValueStorage.js +3 -0
  169. package/lib/types/ILinearStorage.d.ts +11 -0
  170. package/lib/types/ILinearStorage.js +3 -0
  171. package/lib/types/ILinearStorageRA.d.ts +13 -0
  172. package/lib/types/ILinearStorageRA.js +3 -0
  173. package/lib/types/ILinkedList.d.ts +4 -0
  174. package/lib/types/ILinkedList.js +3 -0
  175. package/lib/utils.d.ts +33 -0
  176. package/lib/utils.js +108 -0
  177. package/package.json +1 -1
@@ -0,0 +1,19 @@
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[]>;
@@ -0,0 +1,28 @@
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJlc2VudGVyQWRqYWNlbmN5TGlzdHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvZGF0YS1zdHJ1Y3R1cmVzL0dyYXBoL3ByZXNlbnRlci9wcmVzZW50ZXJBZGphY2VuY3lMaXN0cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFFQTs7Ozs7Ozs7Ozs7Ozs7OztJQWdCSTtBQUNTLFFBQUEsdUJBQXVCLEdBQUcsVUFDckMsS0FBZ0I7SUFFaEIsT0FBTyxLQUFLLENBQUMsUUFBUSxFQUFFLENBQUMsTUFBTSxDQUFDLFVBQUMsR0FBcUIsRUFBRSxNQUFTO1FBQzlELElBQU0sU0FBUyxHQUFHLEtBQUssQ0FBQyxrQkFBa0IsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUNuRCxHQUFHLENBQUMsR0FBRyxDQUFDLE1BQU0sRUFBRSxTQUFTLENBQUMsQ0FBQztRQUUzQixPQUFPLEdBQUcsQ0FBQztJQUNiLENBQUMsRUFBRSxJQUFJLEdBQUcsRUFBRSxDQUFDLENBQUM7QUFDaEIsQ0FBQyxDQUFDIn0=
@@ -0,0 +1,32 @@
1
+ import IGraph from "../../../types/IGraph";
2
+ import { ArrayMatrix } from "../../../types/ArrayMatrix";
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>) => ArrayMatrix;
@@ -0,0 +1,48 @@
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJlc2VudGVyQWRqYWNlbmN5TWF0cml4LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2RhdGEtc3RydWN0dXJlcy9HcmFwaC9wcmVzZW50ZXIvcHJlc2VudGVyQWRqYWNlbmN5TWF0cml4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUNBLGdEQUE4RTtBQUc5RTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQTRCRztBQUNVLFFBQUEsd0JBQXdCLEdBQUcsVUFBSSxLQUFnQjtJQUMxRCxJQUFNLFFBQVEsR0FBRyxLQUFLLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDbEMsSUFBTSxNQUFNLEdBQUcsSUFBSSxLQUFLLENBQUMsS0FBSyxDQUFDLGFBQWEsRUFBRSxDQUFDLENBQUM7SUFFaEQsUUFBUSxDQUFDLE9BQU8sQ0FBQyxVQUFDLGNBQWMsRUFBRSxRQUFRO1FBQ3hDLE1BQU0sQ0FBQyxRQUFRLENBQUMsR0FBRyxJQUFJLEtBQUssQ0FBQyxLQUFLLENBQUMsYUFBYSxFQUFFLENBQUMsQ0FBQztRQUVwRCxRQUFRLENBQUMsT0FBTyxDQUFDLFVBQUMsaUJBQWlCLEVBQUUsV0FBVztZQUM5QyxJQUFNLGVBQWUsR0FBRyxLQUFLLENBQUMsT0FBTyxDQUFDLGNBQWMsRUFBRSxpQkFBaUIsQ0FBQyxDQUFDO1lBRXpFLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQyxXQUFXLENBQUMsR0FBRyxlQUFlO2dCQUM3QyxDQUFDLENBQUMsNkJBQWlCO2dCQUNuQixDQUFDLENBQUMsaUNBQXFCLENBQUM7UUFDNUIsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDLENBQUMsQ0FBQztJQUVILE9BQU8sTUFBTSxDQUFDO0FBQ2hCLENBQUMsQ0FBQyJ9
@@ -0,0 +1,9 @@
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 when start vertex was not found
6
+ * @throws when end vertex was not found
7
+ * @throws 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;
@@ -0,0 +1,30 @@
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 when start vertex was not found
8
+ * @throws when end vertex was not found
9
+ * @throws 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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGFzUGF0aC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9kYXRhLXN0cnVjdHVyZXMvR3JhcGgvc2VhcmNoaW5nL2hhc1BhdGgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBR0EsK0VBQTBFO0FBRTFFOzs7OztHQUtHO0FBQ1UsUUFBQSxPQUFPLEdBQUcsVUFDckIsS0FBZ0IsRUFDaEIsSUFBTyxFQUNQLEVBQUssRUFDTCxRQUFvQztJQUVwQyxjQUFjO0lBQ2QsSUFBSSxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLEVBQUU7UUFDMUIsTUFBTSxJQUFJLDZCQUFtQixDQUFDLDRCQUE0QixDQUFDLENBQUM7S0FDN0Q7SUFDRCxJQUFJLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUMsRUFBRTtRQUN4QixNQUFNLElBQUksNkJBQW1CLENBQUMsMEJBQTBCLENBQUMsQ0FBQztLQUMzRDtJQUVELElBQU0sUUFBUSxHQUFzQixRQUFRLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ25FLFFBQVEsQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLENBQUM7SUFFNUIseUJBQXlCO0lBQ3pCLE9BQU8sUUFBUSxDQUFDLE9BQU8sRUFBRSxFQUFFO1FBQ3pCLElBQU0sSUFBSSxHQUFHLFFBQVEsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUU3QixJQUFJLElBQUksS0FBSyxFQUFFLEVBQUU7WUFDZixPQUFPLElBQUksQ0FBQztTQUNiO0tBQ0Y7SUFFRCxPQUFPLEtBQUssQ0FBQztBQUNmLENBQUMsQ0FBQyJ9
@@ -0,0 +1,9 @@
1
+ import IGraph from "../../../types/IGraph";
2
+ import IGraphIterationStrategy from "../../../types/IGraphIterationStrategy";
3
+ /**
4
+ * Find the shortest path between two vertices
5
+ * @throws when start vertex was not found
6
+ * @throws when end vertex was not found
7
+ * @throws 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[];
@@ -0,0 +1,30 @@
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 when start vertex was not found
8
+ * @throws when end vertex was not found
9
+ * @throws 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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2hvcnRlc3RQYXRoLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2RhdGEtc3RydWN0dXJlcy9HcmFwaC9zZWFyY2hpbmcvc2hvcnRlc3RQYXRoLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUdBLCtFQUEwRTtBQUUxRTs7Ozs7R0FLRztBQUNVLFFBQUEsWUFBWSxHQUFHLFVBQzFCLEtBQWdCLEVBQ2hCLElBQU8sRUFDUCxFQUFLLEVBQ0wsUUFBb0M7SUFFcEMsY0FBYztJQUNkLElBQUksQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxFQUFFO1FBQzFCLE1BQU0sSUFBSSw2QkFBbUIsQ0FBQyw0QkFBNEIsQ0FBQyxDQUFDO0tBQzdEO0lBQ0QsSUFBSSxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDLEVBQUU7UUFDeEIsTUFBTSxJQUFJLDZCQUFtQixDQUFDLDBCQUEwQixDQUFDLENBQUM7S0FDM0Q7SUFFRCxJQUFNLFFBQVEsR0FBc0IsUUFBUSxDQUFDLGNBQWMsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNuRSxRQUFRLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBRTVCLHlCQUF5QjtJQUN6QixPQUFPLFFBQVEsQ0FBQyxPQUFPLEVBQUUsRUFBRTtRQUN6QixJQUFNLElBQUksR0FBRyxRQUFRLENBQUMsSUFBSSxFQUFFLENBQUM7UUFFN0IsSUFBSSxJQUFJLEtBQUssRUFBRSxFQUFFO1lBQ2YsTUFBTTtTQUNQO0tBQ0Y7SUFFRCxPQUFPLFFBQVEsQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxDQUFDO0FBQ3BDLENBQUMsQ0FBQyJ9
@@ -0,0 +1,6 @@
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
+ }
@@ -0,0 +1,13 @@
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQkZTSXRlcmF0aW9uU3RyYXRlZ3kuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvZGF0YS1zdHJ1Y3R1cmVzL0dyYXBoL3N0cmF0ZWd5L0JGU0l0ZXJhdGlvblN0cmF0ZWd5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBR0EsaUVBQTREO0FBRTVEO0lBQUE7SUFLQSxDQUFDO0lBSFEsNkNBQWMsR0FBckIsVUFBc0IsS0FBZ0I7UUFDcEMsT0FBTyxJQUFJLDBCQUFnQixDQUFJLEtBQUssQ0FBQyxDQUFDO0lBQ3hDLENBQUM7SUFDSCwyQkFBQztBQUFELENBQUMsQUFMRCxJQUtDIn0=
@@ -0,0 +1,6 @@
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
+ }
@@ -0,0 +1,13 @@
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiREZTSXRlcmF0aW9uU3RyYXRlZ3kuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvZGF0YS1zdHJ1Y3R1cmVzL0dyYXBoL3N0cmF0ZWd5L0RGU0l0ZXJhdGlvblN0cmF0ZWd5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBR0EsaUVBQTREO0FBRTVEO0lBQUE7SUFLQSxDQUFDO0lBSFEsNkNBQWMsR0FBckIsVUFBc0IsS0FBZ0I7UUFDcEMsT0FBTyxJQUFJLDBCQUFnQixDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3JDLENBQUM7SUFDSCwyQkFBQztBQUFELENBQUMsQUFMRCxJQUtDIn0=
@@ -0,0 +1,6 @@
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
+ }
@@ -0,0 +1,13 @@
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRGlqa3N0cmFJdGVyYXRpb25TdHJhdGVneS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9kYXRhLXN0cnVjdHVyZXMvR3JhcGgvc3RyYXRlZ3kvRGlqa3N0cmFJdGVyYXRpb25TdHJhdGVneS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUdBLDJFQUFzRTtBQUV0RTtJQUFBO0lBS0EsQ0FBQztJQUhRLGtEQUFjLEdBQXJCLFVBQXNCLEtBQWdCO1FBQ3BDLE9BQU8sSUFBSSwrQkFBcUIsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUMxQyxDQUFDO0lBQ0gsZ0NBQUM7QUFBRCxDQUFDLEFBTEQsSUFLQyJ9
@@ -0,0 +1,2 @@
1
+ import IGraph from "../../../types/IGraph";
2
+ export declare const transposeDirectedGraph: <T>(sourceGraph: IGraph<T>) => IGraph<T>;
@@ -0,0 +1,14 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.transposeDirectedGraph = void 0;
4
+ var createGraphFromMatrix_1 = require("../../../helpers/createGraphFromMatrix");
5
+ var EnumGraphType_1 = require("../../../types/EnumGraphType");
6
+ var presenterAdjacencyMatrix_1 = require("../presenter/presenterAdjacencyMatrix");
7
+ var transpose_matrix_1 = require("../../../algorithms/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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNwb3NlRGlyZWN0ZWRHcmFwaC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9kYXRhLXN0cnVjdHVyZXMvR3JhcGgvdHJhbnNwb3NpbmcvdHJhbnNwb3NlRGlyZWN0ZWRHcmFwaC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFDQSxnRkFBK0U7QUFDL0UsOERBQTZEO0FBQzdELGtGQUFpRjtBQUNqRix5RUFBdUU7QUFFMUQsUUFBQSxzQkFBc0IsR0FBRyxVQUNwQyxXQUFzQjtJQUV0QixJQUFNLFlBQVksR0FBRyxXQUFXLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDNUMsSUFBTSxNQUFNLEdBQUcsbURBQXdCLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDckQsSUFBTSxnQkFBZ0IsR0FBRyxrQ0FBZSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBRWpELE9BQU8sNkNBQXFCLENBQzFCLGdCQUFnQixFQUNoQixZQUFZLEVBQ1osNkJBQWEsQ0FBQyxRQUFRLENBQ3ZCLENBQUM7QUFDSixDQUFDLENBQUMifQ==
@@ -0,0 +1,73 @@
1
+ import IKeyValueStorage from "../../types/IKeyValueStorage";
2
+ /**
3
+ * Implementation of open addressing hash table using quadratic probing
4
+ */
5
+ export default class HashTable<T> implements IKeyValueStorage<T> {
6
+ /**
7
+ Constants
8
+ */
9
+ private static DEFAULT_MAX_CAPACITY;
10
+ private static MAX_LOAD_FACTOR;
11
+ /**
12
+ * State
13
+ */
14
+ private storage;
15
+ private maxCapacity;
16
+ private storageCapacity;
17
+ /**
18
+ * Given init capacity size will be used
19
+ * @throws when initial capacity value is not larger than 0
20
+ */
21
+ constructor(initialCapacity?: number);
22
+ /**
23
+ * Main-hash function
24
+ */
25
+ private hashFn;
26
+ /**
27
+ * Helper-hash function
28
+ */
29
+ private innerHashFn;
30
+ /**
31
+ * Max capacity will be increased and storage will be overwritten
32
+ */
33
+ private resizeStorage;
34
+ /**
35
+ * Will find node instance by its key
36
+ * @throws when element does not exist
37
+ */
38
+ private findNode;
39
+ /**
40
+ * Will create new node instance and set in to storage by index
41
+ */
42
+ private addNode;
43
+ /**
44
+ * Will create new node instance and set in to storage by index
45
+ */
46
+ private updateNode;
47
+ /**
48
+ * Will insert item to hash table
49
+ */
50
+ set(key: string, data: T): void;
51
+ /**
52
+ * Will update item property isDeleted to false
53
+ * @throws when element does not exist
54
+ */
55
+ delete(key: string): void;
56
+ /**
57
+ * Will find item in hash table
58
+ * @throws when element does not exist
59
+ */
60
+ get(key: string): T;
61
+ /**
62
+ * Check if node with given key exists
63
+ */
64
+ has(key: string): boolean;
65
+ /**
66
+ * Added elements count
67
+ */
68
+ length(): number;
69
+ /**
70
+ * Will overwrite storage with array of null elements
71
+ */
72
+ clear(): void;
73
+ }
@@ -0,0 +1,171 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ var HashTableNode_1 = require("./HashTableNode");
4
+ var IllegalCapacityException_1 = require("../../exceptions/IllegalCapacityException");
5
+ var IsNotFoundException_1 = require("../../exceptions/IsNotFoundException");
6
+ /**
7
+ * Implementation of open addressing hash table using quadratic probing
8
+ */
9
+ var HashTable = /** @class */ (function () {
10
+ /**
11
+ * Given init capacity size will be used
12
+ * @throws when initial capacity value is not larger than 0
13
+ */
14
+ function HashTable(initialCapacity) {
15
+ if (initialCapacity === void 0) { initialCapacity = HashTable.DEFAULT_MAX_CAPACITY; }
16
+ this.storageCapacity = 0;
17
+ if (initialCapacity <= 0) {
18
+ throw new IllegalCapacityException_1.default("Size must be larger than 0");
19
+ }
20
+ this.maxCapacity = initialCapacity;
21
+ this.storage = new Array(this.maxCapacity).fill(null);
22
+ }
23
+ /**
24
+ * Main-hash function
25
+ */
26
+ HashTable.prototype.hashFn = function (key, number) {
27
+ return ((this.innerHashFn(key) + 127 * number + 365 * number * number) %
28
+ this.maxCapacity);
29
+ };
30
+ /**
31
+ * Helper-hash function
32
+ */
33
+ HashTable.prototype.innerHashFn = function (key) {
34
+ var length = key.length;
35
+ if (length === 0) {
36
+ return 0;
37
+ }
38
+ var substring = key.substring(0, length - 1);
39
+ var symbol = key.charCodeAt(length - 1);
40
+ return (127 * this.innerHashFn(substring) + symbol) % this.maxCapacity;
41
+ };
42
+ /**
43
+ * Max capacity will be increased and storage will be overwritten
44
+ */
45
+ HashTable.prototype.resizeStorage = function () {
46
+ this.maxCapacity *= 2;
47
+ var newArray = new Array(this.maxCapacity).fill(null);
48
+ for (var i = 0; i < this.storage.length; i++) {
49
+ var element = this.storage[i];
50
+ if (element != null) {
51
+ for (var j = 0; j < this.maxCapacity; j++) {
52
+ var newIndex = this.hashFn(element.key, j);
53
+ if (newArray[newIndex] == null) {
54
+ newArray[newIndex] = element;
55
+ break;
56
+ }
57
+ }
58
+ }
59
+ }
60
+ return newArray;
61
+ };
62
+ /**
63
+ * Will find node instance by its key
64
+ * @throws when element does not exist
65
+ */
66
+ HashTable.prototype.findNode = function (key) {
67
+ for (var i = 0; i < this.maxCapacity; i++) {
68
+ var index = this.hashFn(key, i);
69
+ var node = this.storage[index];
70
+ if ((node === null || node === void 0 ? void 0 : node.key) === key) {
71
+ if (node === null || node === void 0 ? void 0 : node.isDeleted) {
72
+ break;
73
+ }
74
+ return node;
75
+ }
76
+ }
77
+ throw new IsNotFoundException_1.default("Element does not exist");
78
+ };
79
+ /**
80
+ * Will create new node instance and set in to storage by index
81
+ */
82
+ HashTable.prototype.addNode = function (key, data, index) {
83
+ this.storage[index] = new HashTableNode_1.default(key, data);
84
+ this.storageCapacity++;
85
+ var loadFactor = this.storageCapacity / this.maxCapacity;
86
+ if (loadFactor >= HashTable.MAX_LOAD_FACTOR) {
87
+ this.storage = this.resizeStorage();
88
+ }
89
+ };
90
+ /**
91
+ * Will create new node instance and set in to storage by index
92
+ */
93
+ HashTable.prototype.updateNode = function (data, index) {
94
+ this.storage[index].data = data;
95
+ this.storage[index].isDeleted = false;
96
+ };
97
+ /**
98
+ * Will insert item to hash table
99
+ */
100
+ HashTable.prototype.set = function (key, data) {
101
+ for (var i = 0; i < this.maxCapacity; i++) {
102
+ var index = this.hashFn(key, i);
103
+ var node = this.storage[index];
104
+ var shouldAddNode = node === null;
105
+ if (shouldAddNode) {
106
+ this.addNode(key, data, index);
107
+ break;
108
+ }
109
+ var shouldUpdateNode = node.key === key;
110
+ if (shouldUpdateNode) {
111
+ this.updateNode(data, index);
112
+ break;
113
+ }
114
+ }
115
+ };
116
+ /**
117
+ * Will update item property isDeleted to false
118
+ * @throws when element does not exist
119
+ */
120
+ HashTable.prototype.delete = function (key) {
121
+ for (var i = 0; i < this.maxCapacity; i++) {
122
+ var index = this.hashFn(key, i);
123
+ if (this.storage[index] !== null) {
124
+ this.storage[index].isDeleted = true;
125
+ return;
126
+ }
127
+ }
128
+ throw new IsNotFoundException_1.default("Element does not exist");
129
+ };
130
+ /**
131
+ * Will find item in hash table
132
+ * @throws when element does not exist
133
+ */
134
+ HashTable.prototype.get = function (key) {
135
+ return this.findNode(key).data;
136
+ };
137
+ /**
138
+ * Check if node with given key exists
139
+ */
140
+ HashTable.prototype.has = function (key) {
141
+ try {
142
+ return Boolean(this.findNode(key));
143
+ }
144
+ catch (e) {
145
+ return false;
146
+ }
147
+ };
148
+ /**
149
+ * Added elements count
150
+ */
151
+ HashTable.prototype.length = function () {
152
+ var actualItems = this.storage.filter(function (item) {
153
+ return item !== null && !item.isDeleted;
154
+ });
155
+ return actualItems.length;
156
+ };
157
+ /**
158
+ * Will overwrite storage with array of null elements
159
+ */
160
+ HashTable.prototype.clear = function () {
161
+ this.storage = new Array(HashTable.DEFAULT_MAX_CAPACITY).fill(null);
162
+ };
163
+ /**
164
+ Constants
165
+ */
166
+ HashTable.DEFAULT_MAX_CAPACITY = 100;
167
+ HashTable.MAX_LOAD_FACTOR = 0.5;
168
+ return HashTable;
169
+ }());
170
+ exports.default = HashTable;
171
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiSGFzaFRhYmxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2RhdGEtc3RydWN0dXJlcy9IYXNoVGFibGUvSGFzaFRhYmxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQ0EsaURBQTRDO0FBQzVDLHNGQUFpRjtBQUNqRiw0RUFBdUU7QUFFdkU7O0dBRUc7QUFDSDtJQWNFOzs7T0FHRztJQUNILG1CQUFtQixlQUF3RDtRQUF4RCxnQ0FBQSxFQUFBLGtCQUEwQixTQUFTLENBQUMsb0JBQW9CO1FBTm5FLG9CQUFlLEdBQUcsQ0FBQyxDQUFDO1FBTzFCLElBQUksZUFBZSxJQUFJLENBQUMsRUFBRTtZQUN4QixNQUFNLElBQUksa0NBQXdCLENBQUMsNEJBQTRCLENBQUMsQ0FBQztTQUNsRTtRQUNELElBQUksQ0FBQyxXQUFXLEdBQUcsZUFBZSxDQUFDO1FBQ25DLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxLQUFLLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUN4RCxDQUFDO0lBRUQ7O09BRUc7SUFDSywwQkFBTSxHQUFkLFVBQWUsR0FBVyxFQUFFLE1BQWM7UUFDeEMsT0FBTyxDQUNMLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsR0FBRyxHQUFHLEdBQUcsTUFBTSxHQUFHLEdBQUcsR0FBRyxNQUFNLEdBQUcsTUFBTSxDQUFDO1lBQzlELElBQUksQ0FBQyxXQUFXLENBQ2pCLENBQUM7SUFDSixDQUFDO0lBRUQ7O09BRUc7SUFDSywrQkFBVyxHQUFuQixVQUFvQixHQUFXO1FBQzdCLElBQU0sTUFBTSxHQUFXLEdBQUcsQ0FBQyxNQUFNLENBQUM7UUFFbEMsSUFBSSxNQUFNLEtBQUssQ0FBQyxFQUFFO1lBQ2hCLE9BQU8sQ0FBQyxDQUFDO1NBQ1Y7UUFDRCxJQUFNLFNBQVMsR0FBRyxHQUFHLENBQUMsU0FBUyxDQUFDLENBQUMsRUFBRSxNQUFN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
@@ -0,0 +1,11 @@
1
+ export default class HashTableNode<T> {
2
+ private readonly _key;
3
+ private _data;
4
+ private _isDeleted;
5
+ constructor(key: string, data: T);
6
+ get data(): T;
7
+ set data(value: T);
8
+ get key(): string;
9
+ get isDeleted(): boolean;
10
+ set isDeleted(value: boolean);
11
+ }
@@ -0,0 +1,39 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ var HashTableNode = /** @class */ (function () {
4
+ function HashTableNode(key, data) {
5
+ this._key = key;
6
+ this._data = data;
7
+ this._isDeleted = false;
8
+ }
9
+ Object.defineProperty(HashTableNode.prototype, "data", {
10
+ get: function () {
11
+ return this._data;
12
+ },
13
+ set: function (value) {
14
+ this._data = value;
15
+ },
16
+ enumerable: false,
17
+ configurable: true
18
+ });
19
+ Object.defineProperty(HashTableNode.prototype, "key", {
20
+ get: function () {
21
+ return this._key;
22
+ },
23
+ enumerable: false,
24
+ configurable: true
25
+ });
26
+ Object.defineProperty(HashTableNode.prototype, "isDeleted", {
27
+ get: function () {
28
+ return this._isDeleted;
29
+ },
30
+ set: function (value) {
31
+ this._isDeleted = value;
32
+ },
33
+ enumerable: false,
34
+ configurable: true
35
+ });
36
+ return HashTableNode;
37
+ }());
38
+ exports.default = HashTableNode;
39
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiSGFzaFRhYmxlTm9kZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9kYXRhLXN0cnVjdHVyZXMvSGFzaFRhYmxlL0hhc2hUYWJsZU5vZGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQTtJQUtFLHVCQUFtQixHQUFXLEVBQUUsSUFBTztRQUNyQyxJQUFJLENBQUMsSUFBSSxHQUFHLEdBQUcsQ0FBQztRQUNoQixJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQztRQUNsQixJQUFJLENBQUMsVUFBVSxHQUFHLEtBQUssQ0FBQztJQUMxQixDQUFDO0lBRUQsc0JBQUksK0JBQUk7YUFBUjtZQUNFLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQztRQUNwQixDQUFDO2FBRUQsVUFBUyxLQUFRO1lBQ2YsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7UUFDckIsQ0FBQzs7O09BSkE7SUFNRCxzQkFBSSw4QkFBRzthQUFQO1lBQ0UsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDO1FBQ25CLENBQUM7OztPQUFBO0lBRUQsc0JBQUksb0NBQVM7YUFBYjtZQUNFLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQztRQUN6QixDQUFDO2FBRUQsVUFBYyxLQUFjO1lBQzFCLElBQUksQ0FBQyxVQUFVLEdBQUcsS0FBSyxDQUFDO1FBQzFCLENBQUM7OztPQUpBO0lBS0gsb0JBQUM7QUFBRCxDQUFDLEFBOUJELElBOEJDIn0=