@raikuxq/alg-ds 1.1.7 → 1.2.2
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.
- package/README.md +71 -88
- package/lib/{algorithms → app/algorithms}/binary-search.d.ts +0 -0
- package/lib/app/algorithms/binary-search.js +27 -0
- package/lib/{algorithms → app/algorithms}/factorial.d.ts +0 -0
- package/lib/{algorithms → app/algorithms}/factorial.js +1 -1
- package/lib/{algorithms → app/algorithms}/fibonacci.d.ts +0 -0
- package/lib/app/algorithms/fibonacci.js +17 -0
- package/lib/{data-structures/Graph → app/algorithms/graph}/iterator/AbstractGraphIterator.d.ts +4 -0
- package/lib/app/algorithms/graph/iterator/AbstractGraphIterator.js +87 -0
- package/lib/{data-structures/Graph → app/algorithms/graph}/iterator/GraphIteratorBFS.d.ts +0 -0
- package/lib/{data-structures/Graph → app/algorithms/graph}/iterator/GraphIteratorBFS.js +2 -2
- package/lib/{data-structures/Graph → app/algorithms/graph}/iterator/GraphIteratorDFS.d.ts +0 -0
- package/lib/{data-structures/Graph → app/algorithms/graph}/iterator/GraphIteratorDFS.js +2 -2
- package/lib/{data-structures/Graph → app/algorithms/graph}/iterator/GraphIteratorDijkstra.d.ts +0 -0
- package/lib/{data-structures/Graph → app/algorithms/graph}/iterator/GraphIteratorDijkstra.js +3 -5
- package/lib/{data-structures/Graph/strategy → app/algorithms/graph/iterator-strategy}/BFSIterationStrategy.d.ts +0 -0
- package/lib/{data-structures/Graph/strategy → app/algorithms/graph/iterator-strategy}/BFSIterationStrategy.js +1 -1
- package/lib/{data-structures/Graph/strategy → app/algorithms/graph/iterator-strategy}/DFSIterationStrategy.d.ts +0 -0
- package/lib/{data-structures/Graph/strategy → app/algorithms/graph/iterator-strategy}/DFSIterationStrategy.js +1 -1
- package/lib/{data-structures/Graph/strategy → app/algorithms/graph/iterator-strategy}/DijkstraIterationStrategy.d.ts +0 -0
- package/lib/{data-structures/Graph/strategy → app/algorithms/graph/iterator-strategy}/DijkstraIterationStrategy.js +1 -1
- package/lib/{data-structures/Graph → app/algorithms/graph}/presenter/presenterAdjacencyLists.d.ts +0 -0
- package/lib/{data-structures/Graph → app/algorithms/graph}/presenter/presenterAdjacencyLists.js +1 -1
- package/lib/{data-structures/Graph → app/algorithms/graph}/presenter/presenterAdjacencyMatrix.d.ts +2 -2
- package/lib/{data-structures/Graph → app/algorithms/graph}/presenter/presenterAdjacencyMatrix.js +1 -1
- package/lib/{data-structures/Graph → app/algorithms/graph}/searching/hasPath.d.ts +3 -3
- package/lib/app/algorithms/graph/searching/hasPath.js +30 -0
- package/lib/{data-structures/Graph → app/algorithms/graph}/searching/shortestPath.d.ts +3 -3
- package/lib/app/algorithms/graph/searching/shortestPath.js +30 -0
- package/lib/{data-structures/Graph → app/algorithms/graph}/transposing/transposeDirectedGraph.d.ts +0 -0
- package/lib/app/algorithms/graph/transposing/transposeDirectedGraph.js +14 -0
- package/lib/{algorithms → app/algorithms}/memoize.d.ts +0 -0
- package/lib/{algorithms → app/algorithms}/memoize.js +1 -1
- package/lib/{algorithms → app/algorithms}/sorts/bubble-sort.d.ts +0 -0
- package/lib/{algorithms → app/algorithms}/sorts/bubble-sort.js +1 -1
- package/lib/{algorithms → app/algorithms}/sorts/insertion-sort.d.ts +0 -0
- package/lib/app/algorithms/sorts/insertion-sort.js +25 -0
- package/lib/{algorithms → app/algorithms}/sorts/merge-sort.d.ts +0 -0
- package/lib/app/algorithms/sorts/merge-sort.js +61 -0
- package/lib/{algorithms → app/algorithms}/sorts/quick-sort.d.ts +0 -0
- package/lib/{algorithms → app/algorithms}/sorts/quick-sort.js +1 -1
- package/lib/{algorithms → app/algorithms}/sorts/select-sort.d.ts +0 -0
- package/lib/{algorithms → app/algorithms}/sorts/select-sort.js +1 -1
- package/lib/app/algorithms/transpose-matrix.d.ts +6 -0
- package/lib/{algorithms → app/algorithms}/transpose-matrix.js +2 -1
- package/lib/{constants.d.ts → app/constants.d.ts} +0 -0
- package/lib/{constants.js → app/constants.js} +1 -1
- package/lib/{data-structures → app/data-structures}/BinaryTree/AbstractBinaryTree/AbstractBinaryNode.d.ts +0 -0
- package/lib/{data-structures → app/data-structures}/BinaryTree/AbstractBinaryTree/AbstractBinaryNode.js +1 -1
- package/lib/{data-structures → app/data-structures}/BinaryTree/AbstractBinaryTree/AbstractBinaryTree.d.ts +1 -1
- package/lib/{data-structures → app/data-structures}/BinaryTree/AbstractBinaryTree/AbstractBinaryTree.js +1 -2
- package/lib/{data-structures → app/data-structures}/BinaryTree/BinarySearchTree/BinarySearchNode.d.ts +0 -0
- package/lib/{data-structures → app/data-structures}/BinaryTree/BinarySearchTree/BinarySearchNode.js +1 -1
- package/lib/{data-structures → app/data-structures}/BinaryTree/BinarySearchTree/BinarySearchTree.d.ts +6 -1
- package/lib/app/data-structures/BinaryTree/BinarySearchTree/BinarySearchTree.js +276 -0
- package/lib/{data-structures → app/data-structures}/BinaryTree/RandBinarySearchTree/RandBinarySearchNode.d.ts +0 -0
- package/lib/{data-structures → app/data-structures}/BinaryTree/RandBinarySearchTree/RandBinarySearchNode.js +1 -1
- package/lib/{data-structures → app/data-structures}/BinaryTree/RandBinarySearchTree/RandBinarySearchTree.d.ts +1 -0
- package/lib/{data-structures → app/data-structures}/BinaryTree/RandBinarySearchTree/RandBinarySearchTree.js +2 -1
- package/lib/app/data-structures/BinaryTree/_helpers/createBinaryTree.d.ts +6 -0
- package/lib/app/data-structures/BinaryTree/_helpers/createBinaryTree.js +22 -0
- package/lib/{data-structures → app/data-structures}/Graph/AbstractGraph.d.ts +3 -3
- package/lib/{data-structures → app/data-structures}/Graph/AbstractGraph.js +4 -4
- package/lib/{data-structures → app/data-structures}/Graph/DirectedGraph.d.ts +3 -0
- package/lib/{data-structures → app/data-structures}/Graph/DirectedGraph.js +4 -1
- package/lib/{data-structures → app/data-structures}/Graph/GraphEdge.d.ts +0 -0
- package/lib/{data-structures → app/data-structures}/Graph/GraphEdge.js +1 -1
- package/lib/{data-structures → app/data-structures}/Graph/UndirectedGraph.d.ts +3 -0
- package/lib/{data-structures → app/data-structures}/Graph/UndirectedGraph.js +4 -1
- package/lib/app/data-structures/Graph/_helpers/createGraph.d.ts +6 -0
- package/lib/app/data-structures/Graph/_helpers/createGraph.js +22 -0
- package/lib/app/data-structures/Graph/_helpers/createGraphFromMatrix.d.ts +7 -0
- package/lib/app/data-structures/Graph/_helpers/createGraphFromMatrix.js +42 -0
- package/lib/{data-structures/Graph/demo → app/data-structures/Graph/_helpers}/generateRandomGraph.d.ts +0 -0
- package/lib/app/data-structures/Graph/_helpers/generateRandomGraph.js +67 -0
- package/lib/{data-structures → app/data-structures}/HashTable/HashTable.d.ts +4 -4
- package/lib/app/data-structures/HashTable/HashTable.js +171 -0
- package/lib/{data-structures → app/data-structures}/HashTable/HashTableNode.d.ts +0 -0
- package/lib/{data-structures → app/data-structures}/HashTable/HashTableNode.js +1 -1
- package/lib/{data-structures → app/data-structures}/LinkedList/AbstractLinkedList/AbstractLinkedList.d.ts +17 -8
- package/lib/app/data-structures/LinkedList/AbstractLinkedList/AbstractLinkedList.js +247 -0
- package/lib/{data-structures → app/data-structures}/LinkedList/AbstractLinkedList/AbstractLinkedNode.d.ts +0 -0
- package/lib/{data-structures → app/data-structures}/LinkedList/AbstractLinkedList/AbstractLinkedNode.js +1 -1
- package/lib/{data-structures → app/data-structures}/LinkedList/DoubleLinkedList/DoubleLinkedList.d.ts +2 -0
- package/lib/{data-structures → app/data-structures}/LinkedList/DoubleLinkedList/DoubleLinkedList.js +5 -3
- package/lib/{data-structures → app/data-structures}/LinkedList/DoubleLinkedList/DoubleLinkedNode.d.ts +0 -0
- package/lib/{data-structures → app/data-structures}/LinkedList/DoubleLinkedList/DoubleLinkedNode.js +1 -1
- package/lib/{data-structures → app/data-structures}/LinkedList/SingleLinkedList/SingleLinkedList.d.ts +2 -0
- package/lib/{data-structures → app/data-structures}/LinkedList/SingleLinkedList/SingleLinkedList.js +4 -2
- package/lib/{data-structures → app/data-structures}/LinkedList/SingleLinkedList/SingleLinkedNode.d.ts +0 -0
- package/lib/{data-structures → app/data-structures}/LinkedList/SingleLinkedList/SingleLinkedNode.js +1 -1
- package/lib/app/data-structures/LinkedList/_helpers/createLinkedList.d.ts +3 -0
- package/lib/app/data-structures/LinkedList/_helpers/createLinkedList.js +19 -0
- package/lib/{data-structures → app/data-structures}/LoopedArray/LoopedArray.d.ts +3 -0
- package/lib/app/data-structures/LoopedArray/LoopedArray.js +165 -0
- package/lib/{data-structures → app/data-structures}/Queue/Queue.d.ts +3 -3
- package/lib/app/data-structures/Queue/Queue.js +85 -0
- package/lib/{data-structures → app/data-structures}/Stack/Stack.d.ts +3 -3
- package/lib/app/data-structures/Stack/Stack.js +85 -0
- package/lib/{exceptions/IsEmptyException.d.ts → app/exceptions/CollectionIsEmptyException.d.ts} +1 -1
- package/lib/{exceptions/IsFullException.js → app/exceptions/CollectionIsEmptyException.js} +7 -7
- package/lib/{exceptions/IsFullException.d.ts → app/exceptions/CollectionIsFullException.d.ts} +1 -1
- package/lib/{exceptions/IsEmptyException.js → app/exceptions/CollectionIsFullException.js} +7 -7
- package/lib/{exceptions → app/exceptions}/IndexOutOfBoundsException.d.ts +0 -0
- package/lib/{exceptions → app/exceptions}/IndexOutOfBoundsException.js +1 -1
- package/lib/{exceptions → app/exceptions}/IsAlreadyExistsException.d.ts +0 -0
- package/lib/{exceptions → app/exceptions}/IsAlreadyExistsException.js +1 -1
- package/lib/{exceptions → app/exceptions}/IsNotFoundException.d.ts +0 -0
- package/lib/{exceptions → app/exceptions}/IsNotFoundException.js +1 -1
- package/lib/{exceptions/IllegalCapacityException.d.ts → app/exceptions/ValueOutOfRangeException.d.ts} +1 -1
- package/lib/{exceptions/IllegalCapacityException.js → app/exceptions/ValueOutOfRangeException.js} +7 -7
- package/lib/{exceptions → app/exceptions}/base/IllegalArgumentException.d.ts +0 -0
- package/lib/{exceptions → app/exceptions}/base/IllegalArgumentException.js +1 -1
- package/lib/{exceptions → app/exceptions}/base/IllegalStateException.d.ts +0 -0
- package/lib/{exceptions → app/exceptions}/base/IllegalStateException.js +1 -1
- package/lib/{types → app/types}/EnumBinarySearchTreeType.d.ts +0 -0
- package/lib/{types → app/types}/EnumBinarySearchTreeType.js +1 -1
- package/lib/app/types/EnumGraphTraversalType.d.ts +5 -0
- package/lib/app/types/EnumGraphTraversalType.js +10 -0
- package/lib/app/types/EnumGraphType.d.ts +4 -0
- package/lib/{types → app/types}/EnumGraphType.js +3 -3
- package/lib/{types → app/types}/EnumLinkedListType.d.ts +0 -0
- package/lib/{types → app/types}/EnumLinkedListType.js +1 -1
- package/lib/{types → app/types}/EnumRandomGenerationFormat.d.ts +2 -2
- package/lib/{types → app/types}/EnumRandomGenerationFormat.js +3 -3
- package/lib/app/types/EnumSortType.d.ts +7 -0
- package/lib/app/types/EnumSortType.js +12 -0
- package/lib/app/types/EnumTreeTraversalType.d.ts +5 -0
- package/lib/app/types/EnumTreeTraversalType.js +10 -0
- package/lib/{types → app/types}/FnCompareTwo.d.ts +0 -0
- package/lib/{types → app/types}/FnCompareTwo.js +1 -1
- package/lib/{types → app/types}/FnToMemoize.d.ts +0 -0
- package/lib/{types → app/types}/FnToMemoize.js +1 -1
- package/lib/{types → app/types}/IArrayFacade.d.ts +0 -0
- package/lib/{types → app/types}/IArrayFacade.js +1 -1
- package/lib/{types → app/types}/IBiDirectIterable.d.ts +0 -0
- package/lib/{types → app/types}/IBiDirectIterable.js +1 -1
- package/lib/{types → app/types}/IBiDirectIterator.d.ts +0 -0
- package/lib/{types → app/types}/IBiDirectIterator.js +1 -1
- package/lib/{types → app/types}/IBinaryTree.d.ts +0 -0
- package/lib/{types → app/types}/IBinaryTree.js +1 -1
- package/lib/{types → app/types}/IConvertableToArray.d.ts +0 -0
- package/lib/{types → app/types}/IConvertableToArray.js +1 -1
- package/lib/{types → app/types}/IGraph.d.ts +0 -0
- package/lib/{types → app/types}/IGraph.js +1 -1
- package/lib/{types → app/types}/IGraphIterationStrategy.d.ts +0 -0
- package/lib/{types → app/types}/IGraphIterationStrategy.js +1 -1
- package/lib/{types → app/types}/IGraphIterator.d.ts +0 -0
- package/lib/{types → app/types}/IGraphIterator.js +1 -1
- package/lib/{types → app/types}/IIterable.d.ts +0 -0
- package/lib/{types → app/types}/IIterable.js +1 -1
- package/lib/{types → app/types}/IIterator.d.ts +0 -0
- package/lib/{types → app/types}/IIterator.js +1 -1
- package/lib/{types → app/types}/IKeyValueStorage.d.ts +0 -0
- package/lib/{types → app/types}/IKeyValueStorage.js +1 -1
- package/lib/{types → app/types}/ILinearStorage.d.ts +0 -0
- package/lib/{types → app/types}/ILinearStorage.js +1 -1
- package/lib/{types → app/types}/ILinearStorageRA.d.ts +0 -0
- package/lib/{types → app/types}/ILinearStorageRA.js +1 -1
- package/lib/{types → app/types}/ILinkedList.d.ts +0 -0
- package/lib/{types → app/types}/ILinkedList.js +1 -1
- package/lib/app/types/TypeArrayMatrix.d.ts +1 -0
- package/lib/app/types/TypeArrayMatrix.js +3 -0
- package/lib/{utils.d.ts → app/utils.d.ts} +6 -2
- package/lib/{utils.js → app/utils.js} +12 -5
- package/lib/exports/algorithms.d.ts +15 -15
- package/lib/exports/algorithms.js +16 -16
- package/lib/exports/constants.d.ts +1 -1
- package/lib/exports/constants.js +2 -2
- package/lib/exports/data-structures.d.ts +10 -10
- package/lib/exports/data-structures.js +11 -11
- package/lib/exports/helpers.d.ts +5 -5
- package/lib/exports/helpers.js +6 -6
- package/lib/exports/sorts.d.ts +5 -5
- package/lib/exports/sorts.js +6 -6
- package/lib/exports/types.d.ts +16 -0
- package/lib/exports/types.js +34 -0
- package/lib/exports/utils.d.ts +2 -2
- package/lib/exports/utils.js +3 -3
- package/lib/exports.d.ts +47 -46
- package/lib/exports.js +51 -49
- package/lib/index.js +1 -2
- package/package.json +11 -6
- package/lib/algorithms/binary-search.js +0 -27
- package/lib/algorithms/fibonacci.js +0 -17
- package/lib/algorithms/sorts/insertion-sort.js +0 -25
- package/lib/algorithms/sorts/merge-sort.js +0 -61
- package/lib/algorithms/transpose-matrix.d.ts +0 -5
- package/lib/data-structures/BinaryTree/BinarySearchTree/BinarySearchTree.js +0 -271
- package/lib/data-structures/Graph/demo/generateRandomGraph.js +0 -66
- package/lib/data-structures/Graph/iterator/AbstractGraphIterator.js +0 -90
- package/lib/data-structures/Graph/searching/hasPath.js +0 -30
- package/lib/data-structures/Graph/searching/shortestPath.js +0 -30
- package/lib/data-structures/Graph/transposing/transposeDirectedGraph.js +0 -14
- package/lib/data-structures/HashTable/HashTable.js +0 -171
- package/lib/data-structures/LinkedList/AbstractLinkedList/AbstractLinkedList.js +0 -241
- package/lib/data-structures/LoopedArray/LoopedArray.js +0 -169
- package/lib/data-structures/Queue/Queue.js +0 -85
- package/lib/data-structures/Stack/Stack.js +0 -85
- package/lib/helpers/createBinaryTree.d.ts +0 -6
- package/lib/helpers/createBinaryTree.js +0 -22
- package/lib/helpers/createGraph.d.ts +0 -6
- package/lib/helpers/createGraph.js +0 -24
- package/lib/helpers/createGraphFromMatrix.d.ts +0 -7
- package/lib/helpers/createGraphFromMatrix.js +0 -42
- package/lib/helpers/createLinkedList.d.ts +0 -3
- package/lib/helpers/createLinkedList.js +0 -21
- package/lib/types/ArrayMatrix.d.ts +0 -1
- package/lib/types/ArrayMatrix.js +0 -3
- package/lib/types/EnumGraphType.d.ts +0 -4
- package/lib/types/EnumTreeTraversalType.d.ts +0 -5
- package/lib/types/EnumTreeTraversalType.js +0 -10
|
@@ -0,0 +1,247 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
var ValueOutOfRangeException_1 = require("../../../exceptions/ValueOutOfRangeException");
|
|
4
|
+
var CollectionIsFullException_1 = require("../../../exceptions/CollectionIsFullException");
|
|
5
|
+
var CollectionIsEmptyException_1 = require("../../../exceptions/CollectionIsEmptyException");
|
|
6
|
+
var IndexOutOfBoundsException_1 = require("../../../exceptions/IndexOutOfBoundsException");
|
|
7
|
+
var AbstractLinkedList = /** @class */ (function () {
|
|
8
|
+
/**
|
|
9
|
+
* Create empty instance
|
|
10
|
+
*/
|
|
11
|
+
function AbstractLinkedList(capacity) {
|
|
12
|
+
this._capacity = AbstractLinkedList.calculateCapacity(capacity);
|
|
13
|
+
this._head = null;
|
|
14
|
+
this._tail = null;
|
|
15
|
+
this._length = 0;
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* Will calculate real capacity value
|
|
19
|
+
* @throws {ValueOutOfRangeException} when capacity is out of range
|
|
20
|
+
*/
|
|
21
|
+
AbstractLinkedList.calculateCapacity = function (capacity) {
|
|
22
|
+
if (capacity === undefined) {
|
|
23
|
+
return Number.MAX_VALUE;
|
|
24
|
+
}
|
|
25
|
+
if (capacity <= 0) {
|
|
26
|
+
throw new ValueOutOfRangeException_1.default("Capacity must be larger than 0");
|
|
27
|
+
}
|
|
28
|
+
return capacity;
|
|
29
|
+
};
|
|
30
|
+
/**
|
|
31
|
+
* Will insert node between nodeLeft and nodeRight
|
|
32
|
+
* @throws {CollectionIsFullException} when list is full
|
|
33
|
+
*/
|
|
34
|
+
AbstractLinkedList.prototype.insertNodeBetweenTwoNodes = function (targetNode, leftNode, rightNode) {
|
|
35
|
+
if (this.isFull()) {
|
|
36
|
+
throw new CollectionIsFullException_1.default("List is full, no more space available");
|
|
37
|
+
}
|
|
38
|
+
if (this._head === null) {
|
|
39
|
+
this._head = targetNode;
|
|
40
|
+
}
|
|
41
|
+
if (this._tail === null) {
|
|
42
|
+
this._tail = targetNode;
|
|
43
|
+
}
|
|
44
|
+
if (!leftNode) {
|
|
45
|
+
leftNode = this._tail;
|
|
46
|
+
}
|
|
47
|
+
if (!rightNode) {
|
|
48
|
+
rightNode = this._head;
|
|
49
|
+
}
|
|
50
|
+
this.insertNodeBetweenTwoNodesImpl(targetNode, leftNode, rightNode);
|
|
51
|
+
this._length++;
|
|
52
|
+
};
|
|
53
|
+
/**
|
|
54
|
+
* Will remove the node from its neighbors nodes links
|
|
55
|
+
* @throws {CollectionIsEmptyException} when list is empty
|
|
56
|
+
*/
|
|
57
|
+
AbstractLinkedList.prototype.deleteNode = function (node) {
|
|
58
|
+
if (this.isEmpty()) {
|
|
59
|
+
throw new CollectionIsEmptyException_1.default("cannot delete because list is empty");
|
|
60
|
+
}
|
|
61
|
+
this.deleteNodeImpl(node);
|
|
62
|
+
this._length--;
|
|
63
|
+
if (this.isEmpty()) {
|
|
64
|
+
this.clear();
|
|
65
|
+
}
|
|
66
|
+
return node;
|
|
67
|
+
};
|
|
68
|
+
/**
|
|
69
|
+
* Will find node by its index
|
|
70
|
+
* @throws {CollectionIsEmptyException} when list is empty
|
|
71
|
+
* @throws {IndexOutOfBoundsException} when given index is out of range
|
|
72
|
+
*/
|
|
73
|
+
AbstractLinkedList.prototype.getNodeByIndex = function (index) {
|
|
74
|
+
var isIndexNotInRange = index < 0 || index > this._length;
|
|
75
|
+
if (this.isEmpty()) {
|
|
76
|
+
throw new CollectionIsEmptyException_1.default("List is empty");
|
|
77
|
+
}
|
|
78
|
+
if (isIndexNotInRange) {
|
|
79
|
+
throw new IndexOutOfBoundsException_1.default("Index exceed list length");
|
|
80
|
+
}
|
|
81
|
+
var currentNode = this._tail;
|
|
82
|
+
var counter = 0;
|
|
83
|
+
while (currentNode && counter < index) {
|
|
84
|
+
currentNode = currentNode.next;
|
|
85
|
+
counter++;
|
|
86
|
+
}
|
|
87
|
+
return currentNode;
|
|
88
|
+
};
|
|
89
|
+
/**
|
|
90
|
+
* Push into start
|
|
91
|
+
* @throws {CollectionIsFullException} when there is no space available
|
|
92
|
+
*/
|
|
93
|
+
AbstractLinkedList.prototype.unshift = function (value) {
|
|
94
|
+
var node = this.createNode(value);
|
|
95
|
+
this.insertNodeBetweenTwoNodes(node, this._head, this._tail);
|
|
96
|
+
this._tail = node;
|
|
97
|
+
};
|
|
98
|
+
/**
|
|
99
|
+
* Push into end
|
|
100
|
+
* @throws {CollectionIsFullException} when there is no space available
|
|
101
|
+
*/
|
|
102
|
+
AbstractLinkedList.prototype.push = function (value) {
|
|
103
|
+
var node = this.createNode(value);
|
|
104
|
+
this.insertNodeBetweenTwoNodes(node, this._head, this._tail);
|
|
105
|
+
this._head = node;
|
|
106
|
+
};
|
|
107
|
+
/**
|
|
108
|
+
* Push from index
|
|
109
|
+
* @throws {IndexOutOfBoundsException} when given index is out of range
|
|
110
|
+
* @throws {CollectionIsFullException} when there is no space available
|
|
111
|
+
*/
|
|
112
|
+
AbstractLinkedList.prototype.pushFromIndex = function (value, fromIndex) {
|
|
113
|
+
var isIndexNotInRange = fromIndex < 0 || fromIndex > this._length;
|
|
114
|
+
var shouldPushAsFirst = this.isEmpty() && fromIndex === 0;
|
|
115
|
+
if (isIndexNotInRange) {
|
|
116
|
+
throw new IndexOutOfBoundsException_1.default("index must be in range between 0 and list length");
|
|
117
|
+
}
|
|
118
|
+
if (shouldPushAsFirst) {
|
|
119
|
+
this.push(value);
|
|
120
|
+
}
|
|
121
|
+
else {
|
|
122
|
+
var node = this.createNode(value);
|
|
123
|
+
var nodeLeft = this.getNodeByIndex(fromIndex - 1);
|
|
124
|
+
var nodeRight = this.getNodeByIndex(fromIndex);
|
|
125
|
+
this.insertNodeBetweenTwoNodes(node, nodeLeft, nodeRight);
|
|
126
|
+
}
|
|
127
|
+
};
|
|
128
|
+
/**
|
|
129
|
+
* Delete node from list's end
|
|
130
|
+
* @throws {CollectionIsEmptyException} when list is empty
|
|
131
|
+
*/
|
|
132
|
+
AbstractLinkedList.prototype.pop = function () {
|
|
133
|
+
var deletedNode = this.deleteNode(this._head);
|
|
134
|
+
this.popImpl();
|
|
135
|
+
return deletedNode.data;
|
|
136
|
+
};
|
|
137
|
+
/**
|
|
138
|
+
* Delete node from list's start and get its data
|
|
139
|
+
* @throws {CollectionIsEmptyException} when list is empty
|
|
140
|
+
*/
|
|
141
|
+
AbstractLinkedList.prototype.shift = function () {
|
|
142
|
+
var deletedNode = this.deleteNode(this._tail);
|
|
143
|
+
this.shiftImpl();
|
|
144
|
+
return deletedNode.data;
|
|
145
|
+
};
|
|
146
|
+
/**
|
|
147
|
+
* Delete node from list by index from start
|
|
148
|
+
* @throws {CollectionIsEmptyException} when list is empty
|
|
149
|
+
*/
|
|
150
|
+
AbstractLinkedList.prototype.deleteFromIndex = function (fromIndex) {
|
|
151
|
+
var nodeToDelete = this.getNodeByIndex(fromIndex);
|
|
152
|
+
var deletedNode = this.deleteNode(nodeToDelete);
|
|
153
|
+
return deletedNode.data;
|
|
154
|
+
};
|
|
155
|
+
/**
|
|
156
|
+
* List length
|
|
157
|
+
*/
|
|
158
|
+
AbstractLinkedList.prototype.length = function () {
|
|
159
|
+
return this._length;
|
|
160
|
+
};
|
|
161
|
+
/**
|
|
162
|
+
* Is list empty
|
|
163
|
+
*/
|
|
164
|
+
AbstractLinkedList.prototype.isEmpty = function () {
|
|
165
|
+
return this._length === 0 || this._head === null || this._tail === null;
|
|
166
|
+
};
|
|
167
|
+
/**
|
|
168
|
+
* Is list full
|
|
169
|
+
*/
|
|
170
|
+
AbstractLinkedList.prototype.isFull = function () {
|
|
171
|
+
return this._length >= this._capacity;
|
|
172
|
+
};
|
|
173
|
+
/**
|
|
174
|
+
* Check if element exists in list
|
|
175
|
+
*/
|
|
176
|
+
AbstractLinkedList.prototype.has = function (item) {
|
|
177
|
+
return this.getAsArray().includes(item);
|
|
178
|
+
};
|
|
179
|
+
/**
|
|
180
|
+
* Get head element data
|
|
181
|
+
* @throws {CollectionIsEmptyException} when head does not exist
|
|
182
|
+
*/
|
|
183
|
+
AbstractLinkedList.prototype.peek = function () {
|
|
184
|
+
if (this.isEmpty() || !this._head) {
|
|
185
|
+
throw new CollectionIsEmptyException_1.default("head does not exist");
|
|
186
|
+
}
|
|
187
|
+
return this._head.data;
|
|
188
|
+
};
|
|
189
|
+
/**
|
|
190
|
+
* Get tail element data
|
|
191
|
+
* @throws {CollectionIsEmptyException} when tail does not exists
|
|
192
|
+
*/
|
|
193
|
+
AbstractLinkedList.prototype.peekFromStart = function () {
|
|
194
|
+
if (this.isEmpty() || !this._tail) {
|
|
195
|
+
throw new CollectionIsEmptyException_1.default("tail does not exist");
|
|
196
|
+
}
|
|
197
|
+
return this._tail.data;
|
|
198
|
+
};
|
|
199
|
+
/**
|
|
200
|
+
* Get list element by index from start
|
|
201
|
+
* @throws {CollectionIsEmptyException} when list is empty
|
|
202
|
+
* @throws {IndexOutOfBoundsException} when given index is out of range
|
|
203
|
+
*/
|
|
204
|
+
AbstractLinkedList.prototype.peekByIndex = function (index) {
|
|
205
|
+
var node = this.getNodeByIndex(index);
|
|
206
|
+
return node.data;
|
|
207
|
+
};
|
|
208
|
+
/**
|
|
209
|
+
* Remove all elements from list
|
|
210
|
+
*/
|
|
211
|
+
AbstractLinkedList.prototype.clear = function () {
|
|
212
|
+
this._head = null;
|
|
213
|
+
this._tail = null;
|
|
214
|
+
this._length = 0;
|
|
215
|
+
};
|
|
216
|
+
/**
|
|
217
|
+
* Get elements as an array
|
|
218
|
+
*/
|
|
219
|
+
AbstractLinkedList.prototype.getAsArray = function () {
|
|
220
|
+
var array = [];
|
|
221
|
+
var currentNode = this._tail;
|
|
222
|
+
var counter = 0;
|
|
223
|
+
while (currentNode && counter < this._length) {
|
|
224
|
+
if (currentNode)
|
|
225
|
+
array.push(currentNode.data);
|
|
226
|
+
currentNode = currentNode.next;
|
|
227
|
+
counter++;
|
|
228
|
+
}
|
|
229
|
+
return array;
|
|
230
|
+
};
|
|
231
|
+
/**
|
|
232
|
+
* Add elements to list from array
|
|
233
|
+
* @throws {CollectionIsFullException} when list is full
|
|
234
|
+
* */
|
|
235
|
+
AbstractLinkedList.prototype.pushFromArray = function (elements) {
|
|
236
|
+
var _this = this;
|
|
237
|
+
elements.forEach(function (element) {
|
|
238
|
+
if (_this.isFull()) {
|
|
239
|
+
throw new CollectionIsFullException_1.default("List is full, no more space available");
|
|
240
|
+
}
|
|
241
|
+
_this.push(element);
|
|
242
|
+
});
|
|
243
|
+
};
|
|
244
|
+
return AbstractLinkedList;
|
|
245
|
+
}());
|
|
246
|
+
exports.default = AbstractLinkedList;
|
|
247
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQWJzdHJhY3RMaW5rZWRMaXN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9kYXRhLXN0cnVjdHVyZXMvTGlua2VkTGlzdC9BYnN0cmFjdExpbmtlZExpc3QvQWJzdHJhY3RMaW5rZWRMaXN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBRUEseUZBQW9GO0FBQ3BGLDJGQUFzRjtBQUN0Riw2RkFBd0Y7QUFDeEYsMkZBQXNGO0FBRXRGO0lBTUU7O09BRUc7SUFDSCw0QkFBc0IsUUFBaUI7UUFDckMsSUFBSSxDQUFDLFNBQVMsR0FBRyxrQkFBa0IsQ0FBQyxpQkFBaUIsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUNoRSxJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQztRQUNsQixJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQztRQUNsQixJQUFJLENBQUMsT0FBTyxHQUFHLENBQUMsQ0FBQztJQUNuQixDQUFDO0lBRUQ7OztPQUdHO0lBQ1ksb0NBQWlCLEdBQWhDLFVBQWlDLFFBQWlCO1FBQ2hELElBQUksUUFBUSxLQUFLLFNBQVMsRUFBRTtZQUMxQixPQUFPLE1BQU0sQ0FBQyxTQUFTLENBQUM7U0FDekI7UUFDRCxJQUFJLFFBQVEsSUFBSSxDQUFDLEVBQUU7WUFDakIsTUFBTSxJQUFJLGtDQUF3QixDQUFDLGdDQUFnQyxDQUFDLENBQUM7U0FDdEU7UUFFRCxPQUFPLFFBQVEsQ0FBQztJQUNsQixDQUFDO0lBRUQ7OztPQUdHO0lBQ0ssc0RBQXlCLEdBQWpDLFVBQ0UsVUFBaUMsRUFDakMsUUFBc0MsRUFDdEMsU0FBdUM7UUFFdkMsSUFBSSxJQUFJLENBQUMsTUFBTSxFQUFFLEVBQUU7WUFDakIsTUFBTSxJQUFJLG1DQUF5QixDQUNqQyx1Q0FBdUMsQ0FDeEMsQ0FBQztTQUNIO1FBQ0QsSUFBSSxJQUFJLENBQUMsS0FBSyxLQUFLLElBQUksRUFBRTtZQUN2QixJQUFJLENBQUMsS0FBSyxHQUFH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
|
|
File without changes
|
|
@@ -38,4 +38,4 @@ var AbstractLinkedNode = /** @class */ (function () {
|
|
|
38
38
|
return AbstractLinkedNode;
|
|
39
39
|
}());
|
|
40
40
|
exports.default = AbstractLinkedNode;
|
|
41
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
41
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQWJzdHJhY3RMaW5rZWROb2RlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9kYXRhLXN0cnVjdHVyZXMvTGlua2VkTGlzdC9BYnN0cmFjdExpbmtlZExpc3QvQWJzdHJhY3RMaW5rZWROb2RlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUE7SUFJRTs7T0FFRztJQUNILDRCQUFzQixJQUFPLEVBQUUsSUFBeUM7UUFBekMscUJBQUEsRUFBQSxXQUF5QztRQUN0RSxJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQztRQUNsQixJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQztJQUNwQixDQUFDO0lBS0Qsc0JBQVcsb0NBQUk7UUFIZjs7V0FFRzthQUNIO1lBQ0UsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDO1FBQ3BCLENBQUM7OztPQUFBO0lBS0Qsc0JBQVcsb0NBQUk7UUFIZjs7V0FFRzthQUNIO1lBQ0UsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDO1FBQ3BCLENBQUM7UUFFRDs7V0FFRzthQUNILFVBQWdCLEtBQW1DO1lBQ2pELElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ3JCLENBQUM7OztPQVBBO0lBUUgseUJBQUM7QUFBRCxDQUFDLEFBaENELElBZ0NDIn0=
|
|
@@ -43,6 +43,8 @@ export default class DoubleLinkedList<T> extends AbstractLinkedList<T> implement
|
|
|
43
43
|
reverse(): void;
|
|
44
44
|
/**
|
|
45
45
|
* List iterator
|
|
46
|
+
* @throws {CollectionIsEmptyException} when list is empty
|
|
47
|
+
* @throws {IndexOutOfBoundsException} when given index is out of range
|
|
46
48
|
*/
|
|
47
49
|
iterator(fromIndex?: number): IBiDirectIterator<T>;
|
|
48
50
|
}
|
package/lib/{data-structures → app/data-structures}/LinkedList/DoubleLinkedList/DoubleLinkedList.js
RENAMED
|
@@ -95,6 +95,8 @@ var DoubleLinkedList = /** @class */ (function (_super) {
|
|
|
95
95
|
};
|
|
96
96
|
/**
|
|
97
97
|
* List iterator
|
|
98
|
+
* @throws {CollectionIsEmptyException} when list is empty
|
|
99
|
+
* @throws {IndexOutOfBoundsException} when given index is out of range
|
|
98
100
|
*/
|
|
99
101
|
DoubleLinkedList.prototype.iterator = function (fromIndex) {
|
|
100
102
|
if (fromIndex === void 0) { fromIndex = 0; }
|
|
@@ -122,7 +124,7 @@ var DoubleLinkedList = /** @class */ (function (_super) {
|
|
|
122
124
|
},
|
|
123
125
|
/**
|
|
124
126
|
* @inheritDoc
|
|
125
|
-
* @throws when next element does not exist
|
|
127
|
+
* @throws {IsNotFoundException} when next element does not exist
|
|
126
128
|
*/
|
|
127
129
|
next: function () {
|
|
128
130
|
if (!iterator.hasNext()) {
|
|
@@ -133,7 +135,7 @@ var DoubleLinkedList = /** @class */ (function (_super) {
|
|
|
133
135
|
},
|
|
134
136
|
/**
|
|
135
137
|
* @inheritDoc
|
|
136
|
-
* @throws when prev element does not exists
|
|
138
|
+
* @throws {IsNotFoundException} when prev element does not exists
|
|
137
139
|
*/
|
|
138
140
|
prev: function () {
|
|
139
141
|
if (!iterator.hasPrev()) {
|
|
@@ -148,4 +150,4 @@ var DoubleLinkedList = /** @class */ (function (_super) {
|
|
|
148
150
|
return DoubleLinkedList;
|
|
149
151
|
}(AbstractLinkedList_1.default));
|
|
150
152
|
exports.default = DoubleLinkedList;
|
|
151
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
153
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRG91YmxlTGlua2VkTGlzdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvZGF0YS1zdHJ1Y3R1cmVzL0xpbmtlZExpc3QvRG91YmxlTGlua2VkTGlzdC9Eb3VibGVMaW5rZWRMaXN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7OztBQUVBLCtFQUEwRTtBQUMxRSx1REFBa0Q7QUFDbEQsK0VBQTBFO0FBRTFFOzs7O0dBSUc7QUFDSDtJQUNVLG9DQUFxQjtJQVE3Qjs7T0FFRztJQUNILDBCQUFtQixRQUFpQjtRQUFwQyxZQUNFLGtCQUFNLFFBQVEsQ0FBQyxTQUdoQjtRQUZDLEtBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDO1FBQ2xCLEtBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDOztJQUNwQixDQUFDO0lBRUQ7O09BRUc7SUFDTyxxQ0FBVSxHQUFwQixVQUFxQixLQUFRO1FBQzNCLE9BQU8sSUFBSSwwQkFBZ0IsQ0FBSSxLQUFLLENBQUMsQ0FBQztJQUN4QyxDQUFDO0lBRUQ7O09BRUc7SUFDTyx3REFBNkIsR0FBdkMsVUFDRSxVQUErQixFQUMvQixRQUE2QixFQUM3QixTQUE4QjtRQUU5QixVQUFVLENBQUMsSUFBSSxHQUFHLFNBQVMsQ0FBQztRQUM1QixVQUFVLENBQUMsSUFBSSxHQUFHLFFBQVEsQ0FBQztRQUUzQixJQUFJLFVBQVUsQ0FBQyxJQUFJLEVBQUU7WUFDbkIsVUFBVSxDQUFDLElBQUksQ0FBQyxJQUFJLEdBQUcsVUFBVSxDQUFDO1NBQ25DO1FBQ0QsSUFBSSxVQUFVLENBQUMsSUFBSSxFQUFFO1lBQ25CLFVBQVUsQ0FBQyxJQUFJLENBQUMsSUFBSSxHQUFHLFVBQVUsQ0FBQztTQUNuQztJQUNILENBQUM7SUFFRDs7T0FFRztJQUNPLHlDQUFjLEdBQXhCLFVBQXlCLElBQXlCO1FBQ2hELElBQUssQ0FBQyxJQUFLLENBQUMsSUFBSSxHQUFHLElBQUssQ0FB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
|
|
File without changes
|
package/lib/{data-structures → app/data-structures}/LinkedList/DoubleLinkedList/DoubleLinkedNode.js
RENAMED
|
@@ -62,4 +62,4 @@ var DoubleLinkedNode = /** @class */ (function (_super) {
|
|
|
62
62
|
return DoubleLinkedNode;
|
|
63
63
|
}(AbstractLinkedNode_1.default));
|
|
64
64
|
exports.default = DoubleLinkedNode;
|
|
65
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
65
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRG91YmxlTGlua2VkTm9kZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvZGF0YS1zdHJ1Y3R1cmVzL0xpbmtlZExpc3QvRG91YmxlTGlua2VkTGlzdC9Eb3VibGVMaW5rZWROb2RlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7OztBQUFBLCtFQUEwRTtBQUUxRTtJQUFpRCxvQ0FBcUI7SUFJcEU7O09BRUc7SUFDSCwwQkFDRSxJQUFPLEVBQ1AsSUFBdUMsRUFDdkMsSUFBdUM7UUFEdkMscUJBQUEsRUFBQSxXQUF1QztRQUN2QyxxQkFBQSxFQUFBLFdBQXVDO1FBSHpDLFlBS0Usa0JBQU0sSUFBSSxDQUFDLFNBR1o7UUFGQyxLQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQztRQUNsQixLQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQzs7SUFDcEIsQ0FBQztJQUtELHNCQUFXLGtDQUFJO1FBSWY7O1dBRUc7YUFDSDtZQUNFLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQztRQUNwQixDQUFDO1FBWkQ7O1dBRUc7YUFDSCxVQUFnQixLQUFpQztZQUMvQyxJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztRQUNyQixDQUFDOzs7T0FBQTtJQVlELHNCQUFXLGtDQUFJO1FBSWY7O1dBRUc7YUFDSDtZQUNFLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQztRQUNwQixDQUFDO1FBWkQ7O1dBRUc7YUFDSCxVQUFnQixLQUFpQztZQUMvQyxJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztRQUNyQixDQUFDOzs7T0FBQTtJQVFILHVCQUFDO0FBQUQsQ0FBQyxBQTVDRCxDQUFpRCw0QkFBa0IsR0E0Q2xFIn0=
|
|
@@ -47,6 +47,8 @@ export default class SingleLinkedList<T> extends AbstractLinkedList<T> implement
|
|
|
47
47
|
reverse(): void;
|
|
48
48
|
/**
|
|
49
49
|
* List iterator
|
|
50
|
+
* @throws {CollectionIsEmptyException} when list is empty
|
|
51
|
+
* @throws {IndexOutOfBoundsException} when given index is out of range
|
|
50
52
|
*/
|
|
51
53
|
iterator(fromIndex?: number): IIterator<T>;
|
|
52
54
|
}
|
package/lib/{data-structures → app/data-structures}/LinkedList/SingleLinkedList/SingleLinkedList.js
RENAMED
|
@@ -100,6 +100,8 @@ var SingleLinkedList = /** @class */ (function (_super) {
|
|
|
100
100
|
};
|
|
101
101
|
/**
|
|
102
102
|
* List iterator
|
|
103
|
+
* @throws {CollectionIsEmptyException} when list is empty
|
|
104
|
+
* @throws {IndexOutOfBoundsException} when given index is out of range
|
|
103
105
|
*/
|
|
104
106
|
SingleLinkedList.prototype.iterator = function (fromIndex) {
|
|
105
107
|
if (fromIndex === void 0) { fromIndex = 0; }
|
|
@@ -120,7 +122,7 @@ var SingleLinkedList = /** @class */ (function (_super) {
|
|
|
120
122
|
},
|
|
121
123
|
/**
|
|
122
124
|
* @inheritDoc
|
|
123
|
-
* @throws when next element does not exist
|
|
125
|
+
* @throws {IsNotFoundException} when next element does not exist
|
|
124
126
|
*/
|
|
125
127
|
next: function () {
|
|
126
128
|
if (!iterator.hasNext()) {
|
|
@@ -135,4 +137,4 @@ var SingleLinkedList = /** @class */ (function (_super) {
|
|
|
135
137
|
return SingleLinkedList;
|
|
136
138
|
}(AbstractLinkedList_1.default));
|
|
137
139
|
exports.default = SingleLinkedList;
|
|
138
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
140
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU2luZ2xlTGlua2VkTGlzdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvZGF0YS1zdHJ1Y3R1cmVzL0xpbmtlZExpc3QvU2luZ2xlTGlua2VkTGlzdC9TaW5nbGVMaW5rZWRMaXN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7OztBQUVBLCtFQUEwRTtBQUMxRSx1REFBa0Q7QUFDbEQsK0VBQTBFO0FBRTFFOzs7O0dBSUc7QUFDSDtJQUNVLG9DQUFxQjtJQVE3Qjs7T0FFRztJQUNILDBCQUFtQixRQUFpQjtRQUFwQyxZQUNFLGtCQUFNLFFBQVEsQ0FBQyxTQUdoQjtRQUZDLEtBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDO1FBQ2xCLEtBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDOztJQUNwQixDQUFDO0lBRUQ7O09BRUc7SUFDSyxzQ0FBVyxHQUFuQixVQUNFLElBQWdDO1FBRWhDLElBQUksV0FBVyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUM7UUFDN0IsT0FBTyxDQUFBLFdBQVcsYUFBWCxXQUFXLHVCQUFYLFdBQVcsQ0FBRSxJQUFJLE1BQUssSUFBSSxFQUFFO1lBQ2pDLFdBQVcsR0FBRyxDQUFBLFdBQVcsYUFBWCxXQUFXLHVCQUFYLFdBQVcsQ0FBRSxJQUFJLEtBQUksSUFBSSxDQUFDO1NBQ3pDO1FBQ0QsT0FBTyxXQUFXLENBQUM7SUFDckIsQ0FBQztJQUVEOztPQUVHO0lBQ08scUNBQVUsR0FBcEIsVUFBcUIsS0FBUTtRQUMzQixPQUFPLElBQUksMEJBQWdCLENBQUksS0FBSyxDQUFDLENBQUM7SUFDeEMsQ0FBQztJQUVEOztPQUVHO0lBQ08sd0RBQTZCLEdBQXZDLFVBQ0UsVUFBK0IsRUFDL0IsUUFBNkIsRUFDN0IsU0FBOEI7UUFFOUIsVUFBVSxDQUFDLElBQUksR0FBRyxTQUFTLENBQUM7UUFFNUIsSUFBSSxRQUFRLEVBQUU7WUFDWixRQUFRLENBQUMsSUFB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
|
|
File without changes
|
package/lib/{data-structures → app/data-structures}/LinkedList/SingleLinkedList/SingleLinkedNode.js
RENAMED
|
@@ -26,4 +26,4 @@ var SingleLinkedNode = /** @class */ (function (_super) {
|
|
|
26
26
|
return SingleLinkedNode;
|
|
27
27
|
}(AbstractLinkedNode_1.default));
|
|
28
28
|
exports.default = SingleLinkedNode;
|
|
29
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
29
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU2luZ2xlTGlua2VkTm9kZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvZGF0YS1zdHJ1Y3R1cmVzL0xpbmtlZExpc3QvU2luZ2xlTGlua2VkTGlzdC9TaW5nbGVMaW5rZWROb2RlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7OztBQUFBLCtFQUEwRTtBQUUxRTtJQUFpRCxvQ0FBcUI7SUFDcEU7O09BRUc7SUFDSCwwQkFBbUIsSUFBTyxFQUFFLElBQXVDO1FBQXZDLHFCQUFBLEVBQUEsV0FBdUM7ZUFDakUsa0JBQU0sSUFBSSxFQUFFLElBQUksQ0FBQztJQUNuQixDQUFDO0lBQ0gsdUJBQUM7QUFBRCxDQUFDLEFBUEQsQ0FBaUQsNEJBQWtCLEdBT2xFIn0=
|
|
@@ -0,0 +1,19 @@
|
|
|
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
|
+
exports.createLinkedList = function (type, capacity) {
|
|
8
|
+
var linkedList;
|
|
9
|
+
switch (type) {
|
|
10
|
+
case EnumLinkedListType_1.EnumLinkedListType.DOUBLE:
|
|
11
|
+
linkedList = new DoubleLinkedList_1.default(capacity);
|
|
12
|
+
break;
|
|
13
|
+
case EnumLinkedListType_1.EnumLinkedListType.SINGLE:
|
|
14
|
+
linkedList = new SingleLinkedList_1.default(capacity);
|
|
15
|
+
break;
|
|
16
|
+
}
|
|
17
|
+
return linkedList;
|
|
18
|
+
};
|
|
19
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlTGlua2VkTGlzdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvZGF0YS1zdHJ1Y3R1cmVzL0xpbmtlZExpc3QvX2hlbHBlcnMvY3JlYXRlTGlua2VkTGlzdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSx3RUFBdUU7QUFDdkUseUVBQW9FO0FBQ3BFLHlFQUFvRTtBQUd2RCxRQUFBLGdCQUFnQixHQUFHLFVBQzlCLElBQXdCLEVBQ3hCLFFBQWlCO0lBRWpCLElBQUksVUFBMEIsQ0FBQztJQUUvQixRQUFRLElBQUksRUFBRTtRQUNaLEtBQUssdUNBQWtCLENBQUMsTUFBTTtZQUM1QixVQUFVLEdBQUcsSUFBSSwwQkFBZ0IsQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUM1QyxNQUFNO1FBQ1IsS0FBSyx1Q0FBa0IsQ0FBQyxNQUFNO1lBQzVCLFVBQVUsR0FBRyxJQUFJLDBCQUFnQixDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBQzVDLE1BQU07S0FDVDtJQUVELE9BQU8sVUFBVSxDQUFDO0FBQ3BCLENBQUMsQ0FBQyJ9
|
|
@@ -10,6 +10,7 @@ export default class LoopedArray<T> implements IArrayFacade<T> {
|
|
|
10
10
|
private _array;
|
|
11
11
|
/**
|
|
12
12
|
* Create empty instance
|
|
13
|
+
* @throws {ValueOutOfRangeException} when given capacity is not valid
|
|
13
14
|
*/
|
|
14
15
|
constructor(capacity: number);
|
|
15
16
|
/**
|
|
@@ -22,10 +23,12 @@ export default class LoopedArray<T> implements IArrayFacade<T> {
|
|
|
22
23
|
unshift(value: T): void;
|
|
23
24
|
/**
|
|
24
25
|
* Delete node from array's end
|
|
26
|
+
* @throws {CollectionIsEmptyException} when array is empty
|
|
25
27
|
*/
|
|
26
28
|
pop(): T;
|
|
27
29
|
/**
|
|
28
30
|
* Delete node from array's start
|
|
31
|
+
* @throws {CollectionIsEmptyException} when array is empty
|
|
29
32
|
*/
|
|
30
33
|
shift(): T;
|
|
31
34
|
/**
|
|
@@ -0,0 +1,165 @@
|
|
|
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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
|
|
@@ -10,17 +10,17 @@ export default class Queue<T> implements ILinearStorage<T> {
|
|
|
10
10
|
constructor(capacity?: number);
|
|
11
11
|
/**
|
|
12
12
|
* Get first element in queue (without deleting)
|
|
13
|
-
* @throws when list is empty
|
|
13
|
+
* @throws {CollectionIsEmptyException} when list is empty
|
|
14
14
|
*/
|
|
15
15
|
peek(): T;
|
|
16
16
|
/**
|
|
17
17
|
* Add element to queue
|
|
18
|
-
* @throws when list is full
|
|
18
|
+
* @throws {CollectionIsFullException} when list is full
|
|
19
19
|
*/
|
|
20
20
|
push(item: T): void;
|
|
21
21
|
/**
|
|
22
22
|
* Delete first element in queue
|
|
23
|
-
* @throws when list is empty
|
|
23
|
+
* @throws {CollectionIsEmptyException} when list is empty
|
|
24
24
|
*/
|
|
25
25
|
pop(): T;
|
|
26
26
|
/**
|