@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,18 +0,0 @@
1
- import IIterator from "../../../types/IIterator";
2
- import IIterable from "../../../types/IIterable";
3
- import SingleLinkedList from "./SingleLinkedList";
4
- /**
5
- * @inheritDoc
6
- */
7
- export default class IterableSingleLinkedList<T> extends SingleLinkedList<T> implements IIterable<T> {
8
- /**
9
- * @inheritDoc
10
- */
11
- constructor(capacity?: number);
12
- /**
13
- * List iterator
14
- * @throws {CollectionIsEmptyException} when list is empty
15
- * @throws {IndexOutOfBoundsException} when given index is out of range
16
- */
17
- iterator(fromIndex?: number): IIterator<T>;
18
- }
@@ -1,68 +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 IsNotFoundException_1 = require("../../../exceptions/IsNotFoundException");
17
- var SingleLinkedList_1 = require("./SingleLinkedList");
18
- /**
19
- * @inheritDoc
20
- */
21
- var IterableSingleLinkedList = /** @class */ (function (_super) {
22
- __extends(IterableSingleLinkedList, _super);
23
- /**
24
- * @inheritDoc
25
- */
26
- function IterableSingleLinkedList(capacity) {
27
- return _super.call(this, capacity) || this;
28
- }
29
- /**
30
- * List iterator
31
- * @throws {CollectionIsEmptyException} when list is empty
32
- * @throws {IndexOutOfBoundsException} when given index is out of range
33
- */
34
- IterableSingleLinkedList.prototype.iterator = function (fromIndex) {
35
- if (fromIndex === void 0) { fromIndex = 0; }
36
- var head = this._head;
37
- var activeNode = this.getNodeByIndex(fromIndex);
38
- var iterator = {
39
- /**
40
- * @inheritDoc
41
- */
42
- current: function () {
43
- return activeNode.data;
44
- },
45
- /**
46
- * @inheritDoc
47
- */
48
- hasNext: function () {
49
- return Boolean(activeNode.next) && activeNode !== head;
50
- },
51
- /**
52
- * @inheritDoc
53
- * @throws {IsNotFoundException} when next element does not exist
54
- */
55
- next: function () {
56
- if (!iterator.hasNext()) {
57
- throw new IsNotFoundException_1.default("Next element does not exist");
58
- }
59
- activeNode = activeNode.next;
60
- return activeNode.data;
61
- },
62
- };
63
- return iterator;
64
- };
65
- return IterableSingleLinkedList;
66
- }(SingleLinkedList_1.default));
67
- exports.default = IterableSingleLinkedList;
68
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiSXRlcmFibGVTaW5nbGVMaW5rZWRMaXN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9kYXRhLXN0cnVjdHVyZXMvTGlua2VkTGlzdC9TaW5nbGVMaW5rZWRMaXN0L0l0ZXJhYmxlU2luZ2xlTGlua2VkTGlzdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7QUFHQSwrRUFBMEU7QUFDMUUsdURBQWtEO0FBRWxEOztHQUVHO0FBQ0g7SUFDVSw0Q0FBbUI7SUFFM0I7O09BRUc7SUFDSCxrQ0FBbUIsUUFBaUI7ZUFDbEMsa0JBQU0sUUFBUSxDQUFDO0lBQ2pCLENBQUM7SUFFRDs7OztPQUlHO0lBQ0ksMkNBQVEsR0FBZixVQUFnQixTQUFhO1FBQWIsMEJBQUEsRUFBQSxhQUFhO1FBQzNCLElBQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUM7UUFDeEIsSUFBSSxVQUFVLEdBQXdCLElBQUksQ0FBQyxjQUFjLENBQUMsU0FBUyxDQUFDLENBQUM7UUFFckUsSUFBTSxRQUFRLEdBQWlCO1lBQzdCOztlQUVHO1lBQ0gsT0FBTyxFQUFFO2dCQUNQLE9BQU8sVUFBVSxDQUFDLElBQUksQ0FBQztZQUN6QixDQUFDO1lBQ0Q7O2VBRUc7WUFDSCxPQUFPLEVBQVA7Z0JBQ0UsT0FBTyxPQUFPLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxJQUFJLFVBQVUsS0FBSyxJQUFJLENBQUM7WUFDekQsQ0FBQztZQUNEOzs7ZUFHRztZQUNILElBQUksRUFBRTtnQkFDSixJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxFQUFFO29CQUN2QixNQUFNLElBQUksNkJBQW1CLENBQUMsNkJBQTZCLENBQUMsQ0FBQztpQkFDOUQ7Z0JBQ0QsVUFBVSxHQUFHLFVBQVUsQ0FBQyxJQUFLLENBQUM7Z0JBQzlCLE9BQU8sVUFBVSxDQUFDLElBQUksQ0FBQztZQUN6QixDQUFDO1NBQ0YsQ0FBQztRQUVGLE9BQU8sUUFBUSxDQUFDO0lBQ2xCLENBQUM7SUFDSCwrQkFBQztBQUFELENBQUMsQUEvQ0QsQ0FDVSwwQkFBZ0IsR0E4Q3pCIn0=
@@ -1,46 +0,0 @@
1
- import AbstractLinkedList from "../AbstractLinkedList/AbstractLinkedList";
2
- import SingleLinkedNode from "./SingleLinkedNode";
3
- /**
4
- * Linear data structure
5
- * Each node has next
6
- * Head's next node is tail
7
- */
8
- export default class SingleLinkedList<T> extends AbstractLinkedList<T> {
9
- /**
10
- * Override types
11
- */
12
- protected _head: SingleLinkedNode<T> | null;
13
- protected _tail: SingleLinkedNode<T> | null;
14
- /**
15
- * @inheritDoc
16
- */
17
- constructor(capacity?: number);
18
- /**
19
- * Find previous sibling of given node
20
- */
21
- private getPrevNode;
22
- /**
23
- * @inheritDoc
24
- */
25
- protected createNode(value: T): SingleLinkedNode<T>;
26
- /**
27
- * @inheritDoc
28
- */
29
- protected insertNodeBetweenTwoNodesImpl(targetNode: SingleLinkedNode<T>, leftNode: SingleLinkedNode<T>, rightNode: SingleLinkedNode<T>): void;
30
- /**
31
- * @inheritDoc
32
- */
33
- protected deleteNodeImpl(node: SingleLinkedNode<T>): void;
34
- /**
35
- * @inheritDoc
36
- */
37
- protected popImpl(): void;
38
- /**
39
- * @inheritDoc
40
- */
41
- protected shiftImpl(): void;
42
- /**
43
- * @inheritDoc
44
- */
45
- reverse(): void;
46
- }
@@ -1,103 +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 AbstractLinkedList_1 = require("../AbstractLinkedList/AbstractLinkedList");
17
- var SingleLinkedNode_1 = require("./SingleLinkedNode");
18
- /**
19
- * Linear data structure
20
- * Each node has next
21
- * Head's next node is tail
22
- */
23
- var SingleLinkedList = /** @class */ (function (_super) {
24
- __extends(SingleLinkedList, _super);
25
- /**
26
- * @inheritDoc
27
- */
28
- function SingleLinkedList(capacity) {
29
- var _this = _super.call(this, capacity) || this;
30
- _this._head = null;
31
- _this._tail = null;
32
- return _this;
33
- }
34
- /**
35
- * Find previous sibling of given node
36
- */
37
- SingleLinkedList.prototype.getPrevNode = function (node) {
38
- var currentNode = this._tail;
39
- while ((currentNode === null || currentNode === void 0 ? void 0 : currentNode.next) !== node) {
40
- currentNode = (currentNode === null || currentNode === void 0 ? void 0 : currentNode.next) || null;
41
- }
42
- return currentNode;
43
- };
44
- /**
45
- * @inheritDoc
46
- */
47
- SingleLinkedList.prototype.createNode = function (value) {
48
- return new SingleLinkedNode_1.default(value);
49
- };
50
- /**
51
- * @inheritDoc
52
- */
53
- SingleLinkedList.prototype.insertNodeBetweenTwoNodesImpl = function (targetNode, leftNode, rightNode) {
54
- targetNode.next = rightNode;
55
- if (leftNode) {
56
- leftNode.next = targetNode;
57
- }
58
- };
59
- /**
60
- * @inheritDoc
61
- */
62
- SingleLinkedList.prototype.deleteNodeImpl = function (node) {
63
- this.getPrevNode(node).next = node.next;
64
- node.next = null;
65
- };
66
- /**
67
- * @inheritDoc
68
- */
69
- SingleLinkedList.prototype.popImpl = function () {
70
- this._head = this.getPrevNode(this._tail);
71
- };
72
- /**
73
- * @inheritDoc
74
- */
75
- SingleLinkedList.prototype.shiftImpl = function () {
76
- var _a;
77
- this._tail = ((_a = this._head) === null || _a === void 0 ? void 0 : _a.next) || null;
78
- };
79
- /**
80
- * @inheritDoc
81
- */
82
- SingleLinkedList.prototype.reverse = function () {
83
- var currentNode = this._tail;
84
- var prevNode = this._head;
85
- var index = 0;
86
- while (index < this._length) {
87
- var next = (currentNode === null || currentNode === void 0 ? void 0 : currentNode.next) || null;
88
- if (currentNode) {
89
- currentNode.next = prevNode;
90
- }
91
- index++;
92
- prevNode = currentNode;
93
- currentNode = next;
94
- }
95
- if (currentNode) {
96
- this._head = currentNode;
97
- this._tail = currentNode.next;
98
- }
99
- };
100
- return SingleLinkedList;
101
- }(AbstractLinkedList_1.default));
102
- exports.default = SingleLinkedList;
103
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU2luZ2xlTGlua2VkTGlzdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvZGF0YS1zdHJ1Y3R1cmVzL0xpbmtlZExpc3QvU2luZ2xlTGlua2VkTGlzdC9TaW5nbGVMaW5rZWRMaXN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7OztBQUFBLCtFQUEwRTtBQUMxRSx1REFBa0Q7QUFFbEQ7Ozs7R0FJRztBQUNIO0lBQWlELG9DQUFxQjtJQU9wRTs7T0FFRztJQUNILDBCQUFtQixRQUFpQjtRQUFwQyxZQUNFLGtCQUFNLFFBQVEsQ0FBQyxTQUdoQjtRQUZDLEtBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDO1FBQ2xCLEtBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDOztJQUNwQixDQUFDO0lBRUQ7O09BRUc7SUFDSyxzQ0FBVyxHQUFuQixVQUNFLElBQWdDO1FBRWhDLElBQUksV0FBVyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUM7UUFDN0IsT0FBTyxDQUFBLFdBQVcsYUFBWCxXQUFXLHVCQUFYLFdBQVcsQ0FBRSxJQUFJLE1BQUssSUFBSSxFQUFFO1lBQ2pDLFdBQVcsR0FBRyxDQUFBLFdBQVcsYUFBWCxXQUFXLHVCQUFYLFdBQVcsQ0FBRSxJQUFJLEtBQUksSUFBSSxDQUFDO1NBQ3pDO1FBQ0QsT0FBTyxXQUFXLENBQUM7SUFDckIsQ0FBQztJQUVEOztPQUVHO0lBQ08scUNBQVUsR0FBcEIsVUFBcUIsS0FBUTtRQUMzQixPQUFPLElBQUksMEJBQWdCLENBQUksS0FBSyxDQUFDLENBQUM7SUFDeEMsQ0FBQztJQUVEOztPQUVHO0lBQ08sd0RBQTZCLEdBQXZDLFVBQ0UsVUFBK0IsRUFDL0IsUUFBNkIsRUFDN0IsU0FBOEI7UUFFOUIsVUFBVSxDQUFDLElBQUksR0FBRyxTQUFTLENBQUM7UUFFNUIsSUFBSSxRQUFRLEVBQUU7WUFDWixRQUFRLENBQUMsSUFBSSxHQUFHLFVBQVUsQ0FBQztTQUM1QjtJQUNILENBQUM7SUFFRDs7T0FFRztJQUNPLHlDQUFjLEdBQXhCLFVBQXlCLElBQXlCO1FBQ2hELElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFFLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUM7UUFDekMsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUM7SUFDbkIsQ0FBQztJQUVEOztPQUVHO0lBQ08sa0NBQU8sR0FBakI7UUFDRSxJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzVDLENBQUM7SUFFRDs7T0FFRztJQUNPLG9DQUFTLEdBQW5COztRQUNFLElBQUksQ0FBQyxLQUFLLEdBQUcsT0FBQSxJQUFJLENBQUMsS0FBSywwQ0FBRSxJQUFJLEtBQUksSUFBSSxDQUFDO0lBQ3hDLENBQUM7SUFFRDs7T0FFRztJQUNJLGtDQUFPLEdBQWQ7UUFDRSxJQUFJLFdBQVcsR0FBK0IsSUFBSSxDQUFDLEtBQUssQ0FBQztRQUN6RCxJQUFJLFFBQVEsR0FBK0IsSUFBSSxDQUFDLEtBQUssQ0FBQztRQUN0RCxJQUFJLEtBQUssR0FBRyxDQUFDLENBQUM7UUFFZCxPQUFPLEtBQUssR0FBRyxJQUFJLENBQUMsT0FBTyxFQUFFO1lBQzNCLElBQU0sSUFBSSxHQUFHLENBQUEsV0FBVyxhQUFYLFdBQVcsdUJBQVgsV0FBVyxDQUFFLElBQUksS0FBSSxJQUFJLENBQUM7WUFFdkMsSUFBSSxXQUFXLEVBQUU7Z0JBQ2YsV0FBVyxDQUFDLElBQUksR0FBRyxRQUFRLENBQUM7YUFDN0I7WUFFRCxLQUFLLEVBQUUsQ0FBQztZQUNSLFFBQVEsR0FBRyxXQUFXLENBQUM7WUFDdkIsV0FBVyxHQUFHLElBQUksQ0FBQztTQUNwQjtRQUVELElBQUksV0FBVyxFQUFFO1lBQ2YsSUFBSSxDQUFDLEtBQUssR0FBRyxXQUFXLENBQUM7WUFDekIsSUFBSSxDQUFDLEtBQUssR0FBRyxXQUFXLENBQUMsSUFBSSxDQUFDO1NBQy9CO0lBQ0gsQ0FBQztJQUNILHVCQUFDO0FBQUQsQ0FBQyxBQWxHRCxDQUFpRCw0QkFBa0IsR0FrR2xFIn0=
@@ -1,7 +0,0 @@
1
- import AbstractLinkedNode from "../AbstractLinkedList/AbstractLinkedNode";
2
- export default class SingleLinkedNode<T> extends AbstractLinkedNode<T> {
3
- /**
4
- * @inheritDoc
5
- */
6
- constructor(data: T, next?: SingleLinkedNode<T> | null);
7
- }
@@ -1,29 +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 AbstractLinkedNode_1 = require("../AbstractLinkedList/AbstractLinkedNode");
17
- var SingleLinkedNode = /** @class */ (function (_super) {
18
- __extends(SingleLinkedNode, _super);
19
- /**
20
- * @inheritDoc
21
- */
22
- function SingleLinkedNode(data, next) {
23
- if (next === void 0) { next = null; }
24
- return _super.call(this, data, next) || this;
25
- }
26
- return SingleLinkedNode;
27
- }(AbstractLinkedNode_1.default));
28
- exports.default = SingleLinkedNode;
29
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU2luZ2xlTGlua2VkTm9kZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvZGF0YS1zdHJ1Y3R1cmVzL0xpbmtlZExpc3QvU2luZ2xlTGlua2VkTGlzdC9TaW5nbGVMaW5rZWROb2RlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7OztBQUFBLCtFQUEwRTtBQUUxRTtJQUFpRCxvQ0FBcUI7SUFDcEU7O09BRUc7SUFDSCwwQkFBbUIsSUFBTyxFQUFFLElBQXVDO1FBQXZDLHFCQUFBLEVBQUEsV0FBdUM7ZUFDakUsa0JBQU0sSUFBSSxFQUFFLElBQUksQ0FBQztJQUNuQixDQUFDO0lBQ0gsdUJBQUM7QUFBRCxDQUFDLEFBUEQsQ0FBaUQsNEJBQWtCLEdBT2xFIn0=
@@ -1,3 +0,0 @@
1
- import { EnumLinkedListType } from "../../../types/EnumLinkedListType";
2
- import ILinkedList from "../../../types/ILinkedList";
3
- export declare const createLinkedList: <T>(type: EnumLinkedListType, isIterable?: boolean, capacity?: number | undefined) => ILinkedList<T>;
@@ -1,34 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.createLinkedList = void 0;
4
- var EnumLinkedListType_1 = require("../../../types/EnumLinkedListType");
5
- var DoubleLinkedList_1 = require("../DoubleLinkedList/DoubleLinkedList");
6
- var SingleLinkedList_1 = require("../SingleLinkedList/SingleLinkedList");
7
- var IterableDoubleLinkedList_1 = require("../DoubleLinkedList/IterableDoubleLinkedList");
8
- var IterableSingleLinkedList_1 = require("../SingleLinkedList/IterableSingleLinkedList");
9
- exports.createLinkedList = function (type, isIterable, capacity) {
10
- if (isIterable === void 0) { isIterable = false; }
11
- var linkedList;
12
- if (isIterable) {
13
- switch (type) {
14
- case EnumLinkedListType_1.EnumLinkedListType.DOUBLE:
15
- linkedList = new IterableDoubleLinkedList_1.default(capacity);
16
- break;
17
- case EnumLinkedListType_1.EnumLinkedListType.SINGLE:
18
- linkedList = new IterableSingleLinkedList_1.default(capacity);
19
- break;
20
- }
21
- }
22
- else {
23
- switch (type) {
24
- case EnumLinkedListType_1.EnumLinkedListType.DOUBLE:
25
- linkedList = new DoubleLinkedList_1.default(capacity);
26
- break;
27
- case EnumLinkedListType_1.EnumLinkedListType.SINGLE:
28
- linkedList = new SingleLinkedList_1.default(capacity);
29
- break;
30
- }
31
- }
32
- return linkedList;
33
- };
34
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlTGlua2VkTGlzdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvZGF0YS1zdHJ1Y3R1cmVzL0xpbmtlZExpc3QvX2hlbHBlcnMvY3JlYXRlTGlua2VkTGlzdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSx3RUFBdUU7QUFDdkUseUVBQW9FO0FBQ3BFLHlFQUFvRTtBQUNwRSx5RkFBb0Y7QUFDcEYseUZBQW9GO0FBR3ZFLFFBQUEsZ0JBQWdCLEdBQUcsVUFDOUIsSUFBd0IsRUFDeEIsVUFBa0IsRUFDbEIsUUFBaUI7SUFEakIsMkJBQUEsRUFBQSxrQkFBa0I7SUFHbEIsSUFBSSxVQUEwQixDQUFDO0lBRS9CLElBQUksVUFBVSxFQUFFO1FBQ2QsUUFBUSxJQUFJLEVBQUU7WUFDWixLQUFLLHVDQUFrQixDQUFDLE1BQU07Z0JBQzVCLFVBQVUsR0FBRyxJQUFJLGtDQUF3QixDQUFDLFFBQVEsQ0FBQyxDQUFDO2dCQUNwRCxNQUFNO1lBQ1IsS0FBSyx1Q0FBa0IsQ0FBQyxNQUFNO2dCQUM1QixVQUFVLEdBQUcsSUFBSSxrQ0FBd0IsQ0FBQyxRQUFRLENBQUMsQ0FBQztnQkFDcEQsTUFBTTtTQUNUO0tBQ0Y7U0FBTTtRQUNMLFFBQVEsSUFBSSxFQUFFO1lBQ1osS0FBSyx1Q0FBa0IsQ0FBQyxNQUFNO2dCQUM1QixVQUFVLEdBQUcsSUFBSSwwQkFBZ0IsQ0FBQyxRQUFRLENBQUMsQ0FBQztnQkFDNUMsTUFBTTtZQUNSLEtBQUssdUNBQWtCLENBQUMsTUFBTTtnQkFDNUIsVUFBVSxHQUFHLElBQUksMEJBQWdCLENBQUMsUUFBUSxDQUFDLENBQUM7Z0JBQzVDLE1BQU07U0FDVDtLQUNGO0lBRUQsT0FBTyxVQUFVLENBQUM7QUFDcEIsQ0FBQyxDQUFDIn0=
@@ -1,86 +0,0 @@
1
- import IArrayFacade from "../../types/IArrayFacade";
2
- /**
3
- * Linear data structure
4
- * Facade above array
5
- * After reaching full array new pushed elements will be overwritten over old elements
6
- */
7
- export default class LoopedArray<T> implements IArrayFacade<T> {
8
- private readonly _capacity;
9
- private _realLength;
10
- private _array;
11
- /**
12
- * Create empty instance
13
- * @throws {ValueOutOfRangeException} when given capacity is not valid
14
- */
15
- constructor(capacity: number);
16
- /**
17
- * Push into end
18
- */
19
- push(value: T): void;
20
- /**
21
- * Push into start
22
- */
23
- unshift(value: T): void;
24
- /**
25
- * Delete node from array's end
26
- * @throws {CollectionIsEmptyException} when array is empty
27
- */
28
- pop(): T;
29
- /**
30
- * Delete node from array's start
31
- * @throws {CollectionIsEmptyException} when array is empty
32
- */
33
- shift(): T;
34
- /**
35
- * Get head element data
36
- */
37
- peek(): T;
38
- /**
39
- * Get tail element data
40
- */
41
- peekFromStart(): T;
42
- /**
43
- * Get array element by index from start
44
- */
45
- peekByIndex(index: number): T;
46
- /**
47
- * Push from index
48
- */
49
- pushFromIndex(value: T, fromIndex: number): void;
50
- /**
51
- * Get elements as array
52
- */
53
- getAsArray(): Array<T>;
54
- /**
55
- * Check if element exists in array
56
- */
57
- has(item: T): boolean;
58
- /**
59
- * Is array empty
60
- */
61
- isEmpty(): boolean;
62
- /**
63
- * Is array full
64
- */
65
- isFull(): boolean;
66
- /**
67
- * List length
68
- */
69
- length(): number;
70
- /**
71
- * Remove all elements from array
72
- */
73
- clear(): void;
74
- /**
75
- * Delete node from array by index from start
76
- */
77
- deleteFromIndex(fromIndex: number): T;
78
- /**
79
- * Add elements to array from array
80
- * */
81
- pushFromArray(elements: Array<T>): void;
82
- /**
83
- * Reverse array nodes links and swap head with tail
84
- */
85
- reverse(): void;
86
- }
@@ -1,165 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- var ValueOutOfRangeException_1 = require("../../exceptions/ValueOutOfRangeException");
4
- var CollectionIsEmptyException_1 = require("../../exceptions/CollectionIsEmptyException");
5
- /**
6
- * Linear data structure
7
- * Facade above array
8
- * After reaching full array new pushed elements will be overwritten over old elements
9
- */
10
- var LoopedArray = /** @class */ (function () {
11
- /**
12
- * Create empty instance
13
- * @throws {ValueOutOfRangeException} when given capacity is not valid
14
- */
15
- function LoopedArray(capacity) {
16
- this._realLength = 0;
17
- if (capacity <= 0) {
18
- throw new ValueOutOfRangeException_1.default("Capacity must be larger than 0");
19
- }
20
- this._capacity = capacity;
21
- this._array = new Array(0);
22
- }
23
- /**
24
- * Push into end
25
- */
26
- LoopedArray.prototype.push = function (value) {
27
- if (this._realLength % this._capacity === 0) {
28
- this._array = new Array(0);
29
- }
30
- this._realLength++;
31
- if (!this.isFull()) {
32
- this._array.push(value);
33
- }
34
- else {
35
- var indexToPush = (this._realLength % this._capacity) - 1;
36
- this._array.splice(indexToPush, 1, value);
37
- }
38
- };
39
- /**
40
- * Push into start
41
- */
42
- LoopedArray.prototype.unshift = function (value) {
43
- if (this._realLength % this._capacity === 0) {
44
- this._array = new Array(0);
45
- }
46
- this._realLength++;
47
- if (!this.isFull()) {
48
- this._array.unshift(value);
49
- }
50
- else {
51
- this._array.splice(this._capacity - 1);
52
- this._array.unshift(value);
53
- }
54
- };
55
- /**
56
- * Delete node from array's end
57
- * @throws {CollectionIsEmptyException} when array is empty
58
- */
59
- LoopedArray.prototype.pop = function () {
60
- if (this.isEmpty()) {
61
- throw new CollectionIsEmptyException_1.default("cannot delete because array is empty");
62
- }
63
- this._realLength--;
64
- var deletedItem = this._array.pop();
65
- return deletedItem;
66
- };
67
- /**
68
- * Delete node from array's start
69
- * @throws {CollectionIsEmptyException} when array is empty
70
- */
71
- LoopedArray.prototype.shift = function () {
72
- if (this.isEmpty()) {
73
- throw new CollectionIsEmptyException_1.default("cannot delete because array is empty");
74
- }
75
- this._realLength--;
76
- var deletedItem = this._array.shift();
77
- return deletedItem;
78
- };
79
- /**
80
- * Get head element data
81
- */
82
- LoopedArray.prototype.peek = function () {
83
- return this._array[this._array.length - 1];
84
- };
85
- /**
86
- * Get tail element data
87
- */
88
- LoopedArray.prototype.peekFromStart = function () {
89
- return this._array[0];
90
- };
91
- /**
92
- * Get array element by index from start
93
- */
94
- LoopedArray.prototype.peekByIndex = function (index) {
95
- return this._array[index];
96
- };
97
- /**
98
- * Push from index
99
- */
100
- LoopedArray.prototype.pushFromIndex = function (value, fromIndex) {
101
- this._array[fromIndex] = value;
102
- };
103
- /**
104
- * Get elements as array
105
- */
106
- LoopedArray.prototype.getAsArray = function () {
107
- return this._array;
108
- };
109
- /**
110
- * Check if element exists in array
111
- */
112
- LoopedArray.prototype.has = function (item) {
113
- return this._array.includes(item);
114
- };
115
- /**
116
- * Is array empty
117
- */
118
- LoopedArray.prototype.isEmpty = function () {
119
- return this._array.length === 0;
120
- };
121
- /**
122
- * Is array full
123
- */
124
- LoopedArray.prototype.isFull = function () {
125
- return this._array.length >= this._capacity;
126
- };
127
- /**
128
- * List length
129
- */
130
- LoopedArray.prototype.length = function () {
131
- return this._array.length;
132
- };
133
- /**
134
- * Remove all elements from array
135
- */
136
- LoopedArray.prototype.clear = function () {
137
- this._array = new Array(0);
138
- };
139
- /**
140
- * Delete node from array by index from start
141
- */
142
- LoopedArray.prototype.deleteFromIndex = function (fromIndex) {
143
- var deletedElement = this._array[fromIndex];
144
- delete this._array[fromIndex];
145
- return deletedElement;
146
- };
147
- /**
148
- * Add elements to array from array
149
- * */
150
- LoopedArray.prototype.pushFromArray = function (elements) {
151
- var _this = this;
152
- elements.forEach(function (element) {
153
- _this.push(element);
154
- });
155
- };
156
- /**
157
- * Reverse array nodes links and swap head with tail
158
- */
159
- LoopedArray.prototype.reverse = function () {
160
- this._array = this._array.reverse();
161
- };
162
- return LoopedArray;
163
- }());
164
- exports.default = LoopedArray;
165
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTG9vcGVkQXJyYXkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvYXBwL2RhdGEtc3RydWN0dXJlcy9Mb29wZWRBcnJheS9Mb29wZWRBcnJheS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUNBLHNGQUFpRjtBQUVqRiwwRkFBcUY7QUFFckY7Ozs7R0FJRztBQUNIO0lBS0U7OztPQUdHO0lBQ0gscUJBQVksUUFBZ0I7UUFQcEIsZ0JBQVcsR0FBRyxDQUFDLENBQUM7UUFRdEIsSUFBSSxRQUFRLElBQUksQ0FBQyxFQUFFO1lBQ2pCLE1BQU0sSUFBSSxrQ0FBd0IsQ0FBQyxnQ0FBZ0MsQ0FBQyxDQUFDO1NBQ3RFO1FBQ0QsSUFBSSxDQUFDLFNBQVMsR0FBRyxRQUFRLENBQUM7UUFDMUIsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLEtBQUssQ0FBSSxDQUFDLENBQUMsQ0FBQztJQUNoQyxDQUFDO0lBRUQ7O09BRUc7SUFDSSwwQkFBSSxHQUFYLFVBQVksS0FBUTtRQUNsQixJQUFJLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLFNBQVMsS0FBSyxDQUFDLEVBQUU7WUFDM0MsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLEtBQUssQ0FBSSxDQUFDLENBQUMsQ0FBQztTQUMvQjtRQUVELElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUVuQixJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxFQUFFO1lBQ2xCLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1NBQ3pCO2FBQU07WUFDTCxJQUFNLFdBQVcsR0FBRyxDQUFDLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUM1RCxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxXQUFXLEVBQUUsQ0FBQyxFQUFFLEtBQUssQ0FBQyxDQUFDO1NBQzNDO0lBQ0gsQ0FBQztJ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
@@ -1,50 +0,0 @@
1
- import ILinearStorage from "../../types/ILinearStorage";
2
- /**
3
- * FIFO data structure
4
- */
5
- export default class Queue<T> implements ILinearStorage<T> {
6
- private readonly _list;
7
- /**
8
- * Create a queue instance
9
- */
10
- constructor(capacity?: number);
11
- /**
12
- * Get first element in queue (without deleting)
13
- * @throws {CollectionIsEmptyException} when list is empty
14
- */
15
- peek(): T;
16
- /**
17
- * Add element to queue
18
- * @throws {CollectionIsFullException} when list is full
19
- */
20
- push(item: T): void;
21
- /**
22
- * Delete first element in queue
23
- * @throws {CollectionIsEmptyException} when list is empty
24
- */
25
- pop(): T;
26
- /**
27
- * Check if element exists in list
28
- */
29
- has(item: T): boolean;
30
- /**
31
- * Is queue empty
32
- */
33
- isEmpty(): boolean;
34
- /**
35
- * Is stack full
36
- */
37
- isFull(): boolean;
38
- /**
39
- * Remove all elements in queue
40
- */
41
- clear(): void;
42
- /**
43
- * Queue length
44
- */
45
- length(): number;
46
- /**
47
- * Reverse queue
48
- */
49
- reverse(): void;
50
- }