@raikuxq/alg-ds 1.2.1 → 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/lib/app/algorithms/graph/iterator/AbstractGraphIterator.d.ts +4 -0
- package/lib/app/algorithms/graph/iterator/AbstractGraphIterator.js +5 -1
- package/lib/app/algorithms/graph/searching/hasPath.d.ts +3 -3
- package/lib/app/algorithms/graph/searching/hasPath.js +3 -3
- package/lib/app/algorithms/graph/searching/shortestPath.d.ts +3 -3
- package/lib/app/algorithms/graph/searching/shortestPath.js +3 -3
- package/lib/app/algorithms/graph/transposing/transposeDirectedGraph.js +1 -1
- package/lib/app/algorithms/transpose-matrix.d.ts +1 -0
- package/lib/app/algorithms/transpose-matrix.js +2 -1
- package/lib/app/data-structures/BinaryTree/AbstractBinaryTree/AbstractBinaryTree.d.ts +1 -1
- package/lib/app/data-structures/BinaryTree/AbstractBinaryTree/AbstractBinaryTree.js +1 -2
- package/lib/app/data-structures/BinaryTree/BinarySearchTree/BinarySearchTree.d.ts +6 -1
- package/lib/app/data-structures/BinaryTree/BinarySearchTree/BinarySearchTree.js +10 -5
- package/lib/app/data-structures/BinaryTree/RandBinarySearchTree/RandBinarySearchTree.d.ts +1 -0
- package/lib/app/data-structures/BinaryTree/RandBinarySearchTree/RandBinarySearchTree.js +2 -1
- package/lib/app/data-structures/Graph/AbstractGraph.d.ts +3 -3
- package/lib/app/data-structures/Graph/AbstractGraph.js +3 -3
- package/lib/app/data-structures/Graph/DirectedGraph.d.ts +3 -0
- package/lib/app/data-structures/Graph/DirectedGraph.js +4 -1
- package/lib/app/data-structures/Graph/UndirectedGraph.d.ts +3 -0
- package/lib/app/data-structures/Graph/UndirectedGraph.js +4 -1
- package/lib/app/data-structures/Graph/_helpers/createGraph.js +2 -2
- package/lib/app/data-structures/Graph/_helpers/createGraphFromMatrix.js +2 -2
- package/lib/app/data-structures/Graph/_helpers/generateRandomGraph.js +6 -6
- package/lib/app/data-structures/HashTable/HashTable.d.ts +4 -4
- package/lib/app/data-structures/HashTable/HashTable.js +6 -6
- package/lib/app/data-structures/LinkedList/AbstractLinkedList/AbstractLinkedList.d.ts +17 -8
- package/lib/app/data-structures/LinkedList/AbstractLinkedList/AbstractLinkedList.js +22 -16
- package/lib/app/data-structures/LinkedList/DoubleLinkedList/DoubleLinkedList.d.ts +2 -0
- package/lib/app/data-structures/LinkedList/DoubleLinkedList/DoubleLinkedList.js +5 -3
- package/lib/app/data-structures/LinkedList/SingleLinkedList/SingleLinkedList.d.ts +2 -0
- package/lib/app/data-structures/LinkedList/SingleLinkedList/SingleLinkedList.js +4 -2
- package/lib/app/data-structures/LoopedArray/LoopedArray.d.ts +3 -0
- package/lib/app/data-structures/LoopedArray/LoopedArray.js +4 -8
- package/lib/app/data-structures/Queue/Queue.d.ts +3 -3
- package/lib/app/data-structures/Queue/Queue.js +3 -3
- package/lib/app/data-structures/Stack/Stack.d.ts +3 -3
- package/lib/app/data-structures/Stack/Stack.js +3 -3
- package/lib/app/types/EnumGraphType.d.ts +2 -2
- package/lib/app/types/EnumGraphType.js +2 -2
- package/lib/app/types/EnumRandomGenerationFormat.d.ts +2 -2
- package/lib/app/types/EnumRandomGenerationFormat.js +2 -2
- package/lib/app/types/EnumSortType.d.ts +5 -5
- package/lib/app/types/EnumSortType.js +5 -5
- package/lib/app/types/EnumTreeTraversalType.d.ts +3 -3
- package/lib/app/types/EnumTreeTraversalType.js +4 -4
- package/lib/app/utils.d.ts +2 -2
- package/lib/app/utils.js +5 -4
- package/package.json +1 -1
|
@@ -12,10 +12,10 @@ var getRandomVertex = function () {
|
|
|
12
12
|
var getPossibleEdgesCount = function (type, verticesCount) {
|
|
13
13
|
var possibleEdgesCount = verticesCount * (verticesCount - 1);
|
|
14
14
|
switch (type) {
|
|
15
|
-
case EnumGraphType_1.EnumGraphType.
|
|
15
|
+
case EnumGraphType_1.EnumGraphType.DIRECTED: {
|
|
16
16
|
break;
|
|
17
17
|
}
|
|
18
|
-
case EnumGraphType_1.EnumGraphType.
|
|
18
|
+
case EnumGraphType_1.EnumGraphType.UNDIRECTED: {
|
|
19
19
|
possibleEdgesCount = Math.floor(possibleEdgesCount / 2);
|
|
20
20
|
break;
|
|
21
21
|
}
|
|
@@ -24,13 +24,13 @@ var getPossibleEdgesCount = function (type, verticesCount) {
|
|
|
24
24
|
};
|
|
25
25
|
var fillGraphRandomly = function (graph, format, verticesCount) {
|
|
26
26
|
switch (format) {
|
|
27
|
-
case EnumRandomGenerationFormat_1.EnumRandomGenerationFormat.
|
|
27
|
+
case EnumRandomGenerationFormat_1.EnumRandomGenerationFormat.HASH: {
|
|
28
28
|
for (var i = 0; i < verticesCount; i++) {
|
|
29
29
|
graph.addVertex(getRandomVertex());
|
|
30
30
|
}
|
|
31
31
|
break;
|
|
32
32
|
}
|
|
33
|
-
case EnumRandomGenerationFormat_1.EnumRandomGenerationFormat.
|
|
33
|
+
case EnumRandomGenerationFormat_1.EnumRandomGenerationFormat.NUMBERS: {
|
|
34
34
|
for (var i = 0; i < verticesCount; i++) {
|
|
35
35
|
graph.addVertex((i + 1).toString());
|
|
36
36
|
}
|
|
@@ -39,8 +39,8 @@ var fillGraphRandomly = function (graph, format, verticesCount) {
|
|
|
39
39
|
}
|
|
40
40
|
};
|
|
41
41
|
exports.generateRandomGraph = function (verticesCount, edgesCount, type, format) {
|
|
42
|
-
if (type === void 0) { type = EnumGraphType_1.EnumGraphType.
|
|
43
|
-
if (format === void 0) { format = EnumRandomGenerationFormat_1.EnumRandomGenerationFormat.
|
|
42
|
+
if (type === void 0) { type = EnumGraphType_1.EnumGraphType.UNDIRECTED; }
|
|
43
|
+
if (format === void 0) { format = EnumRandomGenerationFormat_1.EnumRandomGenerationFormat.NUMBERS; }
|
|
44
44
|
var graph = createGraph_1.createGraph(type);
|
|
45
45
|
var possibleEdgesCount = getPossibleEdgesCount(type, verticesCount);
|
|
46
46
|
if (edgesCount <= 0 || edgesCount > possibleEdgesCount) {
|
|
@@ -16,7 +16,7 @@ export default class HashTable<T> implements IKeyValueStorage<T> {
|
|
|
16
16
|
private storageCapacity;
|
|
17
17
|
/**
|
|
18
18
|
* Given init capacity size will be used
|
|
19
|
-
* @throws when initial capacity value is not larger than 0
|
|
19
|
+
* @throws {ValueOutOfRangeException} when initial capacity value is not larger than 0
|
|
20
20
|
*/
|
|
21
21
|
constructor(initialCapacity?: number);
|
|
22
22
|
/**
|
|
@@ -33,7 +33,7 @@ export default class HashTable<T> implements IKeyValueStorage<T> {
|
|
|
33
33
|
private resizeStorage;
|
|
34
34
|
/**
|
|
35
35
|
* Will find node instance by its key
|
|
36
|
-
* @throws when element does not exist
|
|
36
|
+
* @throws {IsNotFoundException} when element does not exist
|
|
37
37
|
*/
|
|
38
38
|
private findNode;
|
|
39
39
|
/**
|
|
@@ -50,12 +50,12 @@ export default class HashTable<T> implements IKeyValueStorage<T> {
|
|
|
50
50
|
set(key: string, data: T): void;
|
|
51
51
|
/**
|
|
52
52
|
* Will update item property isDeleted to false
|
|
53
|
-
* @throws when element does not exist
|
|
53
|
+
* @throws {IsNotFoundException} when element does not exist
|
|
54
54
|
*/
|
|
55
55
|
delete(key: string): void;
|
|
56
56
|
/**
|
|
57
57
|
* Will find item in hash table
|
|
58
|
-
* @throws when element does not exist
|
|
58
|
+
* @throws {IsNotFoundException} when element does not exist
|
|
59
59
|
*/
|
|
60
60
|
get(key: string): T;
|
|
61
61
|
/**
|
|
@@ -9,7 +9,7 @@ var IsNotFoundException_1 = require("../../exceptions/IsNotFoundException");
|
|
|
9
9
|
var HashTable = /** @class */ (function () {
|
|
10
10
|
/**
|
|
11
11
|
* Given init capacity size will be used
|
|
12
|
-
* @throws when initial capacity value is not larger than 0
|
|
12
|
+
* @throws {ValueOutOfRangeException} when initial capacity value is not larger than 0
|
|
13
13
|
*/
|
|
14
14
|
function HashTable(initialCapacity) {
|
|
15
15
|
if (initialCapacity === void 0) { initialCapacity = HashTable.DEFAULT_MAX_CAPACITY; }
|
|
@@ -61,7 +61,7 @@ var HashTable = /** @class */ (function () {
|
|
|
61
61
|
};
|
|
62
62
|
/**
|
|
63
63
|
* Will find node instance by its key
|
|
64
|
-
* @throws when element does not exist
|
|
64
|
+
* @throws {IsNotFoundException} when element does not exist
|
|
65
65
|
*/
|
|
66
66
|
HashTable.prototype.findNode = function (key) {
|
|
67
67
|
for (var i = 0; i < this.maxCapacity; i++) {
|
|
@@ -115,7 +115,7 @@ var HashTable = /** @class */ (function () {
|
|
|
115
115
|
};
|
|
116
116
|
/**
|
|
117
117
|
* Will update item property isDeleted to false
|
|
118
|
-
* @throws when element does not exist
|
|
118
|
+
* @throws {IsNotFoundException} when element does not exist
|
|
119
119
|
*/
|
|
120
120
|
HashTable.prototype.delete = function (key) {
|
|
121
121
|
for (var i = 0; i < this.maxCapacity; i++) {
|
|
@@ -129,7 +129,7 @@ var HashTable = /** @class */ (function () {
|
|
|
129
129
|
};
|
|
130
130
|
/**
|
|
131
131
|
* Will find item in hash table
|
|
132
|
-
* @throws when element does not exist
|
|
132
|
+
* @throws {IsNotFoundException} when element does not exist
|
|
133
133
|
*/
|
|
134
134
|
HashTable.prototype.get = function (key) {
|
|
135
135
|
return this.findNode(key).data;
|
|
@@ -164,8 +164,8 @@ var HashTable = /** @class */ (function () {
|
|
|
164
164
|
Constants
|
|
165
165
|
*/
|
|
166
166
|
HashTable.DEFAULT_MAX_CAPACITY = 100;
|
|
167
|
-
HashTable.MAX_LOAD_FACTOR = 0.
|
|
167
|
+
HashTable.MAX_LOAD_FACTOR = 0.75;
|
|
168
168
|
return HashTable;
|
|
169
169
|
}());
|
|
170
170
|
exports.default = HashTable;
|
|
171
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
171
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiSGFzaFRhYmxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2FwcC9kYXRhLXN0cnVjdHVyZXMvSGFzaFRhYmxlL0hhc2hUYWJsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUNBLGlEQUE0QztBQUM1QyxzRkFBaUY7QUFDakYsNEVBQXVFO0FBRXZFOztHQUVHO0FBQ0g7SUFjRTs7O09BR0c7SUFDSCxtQkFBbUIsZUFBd0Q7UUFBeEQsZ0NBQUEsRUFBQSxrQkFBMEIsU0FBUyxDQUFDLG9CQUFvQjtRQU5uRSxvQkFBZSxHQUFHLENBQUMsQ0FBQztRQU8xQixJQUFJLGVBQWUsSUFBSSxDQUFDLEVBQUU7WUFDeEIsTUFBTSxJQUFJLGtDQUF3QixDQUFDLDRCQUE0QixDQUFDLENBQUM7U0FDbEU7UUFDRCxJQUFJLENBQUMsV0FBVyxHQUFHLGVBQWUsQ0FBQztRQUNuQyxJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksS0FBSyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDeEQsQ0FBQztJQUVEOztPQUVHO0lBQ0ssMEJBQU0sR0FBZCxVQUFlLEdBQVcsRUFBRSxNQUFjO1FBQ3hDLE9BQU8sQ0FDTCxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLEdBQUcsR0FBRyxHQUFHLE1BQU0sR0FBRyxHQUFHLEdBQUcsTUFBTSxHQUFHLE1BQU0sQ0FBQztZQUM5RCxJQUFJLENBQUMsV0FBVyxDQUNqQixDQUFDO0lBQ0osQ0FBQztJQUVEOztPQUVHO0lBQ0ssK0JBQVcsR0FBbkIsVUFBb0IsR0FBVztRQUM3QixJQUFNLE1BQU0sR0FBVyxHQUFHLENBQUMsTUFBTSxDQUFDO1FBRWxDLElBQUksTUFBTSxLQUFLLENBQUMsRUFBRTtZQUNoQixPQUFPLENBQUMsQ0FBQztTQUNWO1FBQ0QsSUFBTSxTQUFTLEdBQUcsR0FBRyxDQUFDLFNBQVMsQ0FBQyxDQUFDLEVB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
|
|
@@ -11,22 +11,23 @@ export default abstract class AbstractLinkedList<T> implements ILinkedList<T> {
|
|
|
11
11
|
protected constructor(capacity?: number);
|
|
12
12
|
/**
|
|
13
13
|
* Will calculate real capacity value
|
|
14
|
-
* @throws when capacity
|
|
14
|
+
* @throws {ValueOutOfRangeException} when capacity is out of range
|
|
15
15
|
*/
|
|
16
16
|
private static calculateCapacity;
|
|
17
17
|
/**
|
|
18
18
|
* Will insert node between nodeLeft and nodeRight
|
|
19
|
-
* @throws when list is full
|
|
19
|
+
* @throws {CollectionIsFullException} when list is full
|
|
20
20
|
*/
|
|
21
21
|
private insertNodeBetweenTwoNodes;
|
|
22
22
|
/**
|
|
23
23
|
* Will remove the node from its neighbors nodes links
|
|
24
|
-
* @throws when
|
|
24
|
+
* @throws {CollectionIsEmptyException} when list is empty
|
|
25
25
|
*/
|
|
26
26
|
private deleteNode;
|
|
27
27
|
/**
|
|
28
28
|
* Will find node by its index
|
|
29
|
-
* @throws when
|
|
29
|
+
* @throws {CollectionIsEmptyException} when list is empty
|
|
30
|
+
* @throws {IndexOutOfBoundsException} when given index is out of range
|
|
30
31
|
*/
|
|
31
32
|
protected getNodeByIndex(index: number): AbstractLinkedNode<T>;
|
|
32
33
|
/**
|
|
@@ -51,26 +52,33 @@ export default abstract class AbstractLinkedList<T> implements ILinkedList<T> {
|
|
|
51
52
|
protected abstract createNode(value: T): AbstractLinkedNode<T>;
|
|
52
53
|
/**
|
|
53
54
|
* Push into start
|
|
55
|
+
* @throws {CollectionIsFullException} when there is no space available
|
|
54
56
|
*/
|
|
55
57
|
unshift(value: T): void;
|
|
56
58
|
/**
|
|
57
59
|
* Push into end
|
|
60
|
+
* @throws {CollectionIsFullException} when there is no space available
|
|
58
61
|
*/
|
|
59
62
|
push(value: T): void;
|
|
60
63
|
/**
|
|
61
64
|
* Push from index
|
|
65
|
+
* @throws {IndexOutOfBoundsException} when given index is out of range
|
|
66
|
+
* @throws {CollectionIsFullException} when there is no space available
|
|
62
67
|
*/
|
|
63
68
|
pushFromIndex(value: T, fromIndex: number): void;
|
|
64
69
|
/**
|
|
65
70
|
* Delete node from list's end
|
|
71
|
+
* @throws {CollectionIsEmptyException} when list is empty
|
|
66
72
|
*/
|
|
67
73
|
pop(): T;
|
|
68
74
|
/**
|
|
69
75
|
* Delete node from list's start and get its data
|
|
76
|
+
* @throws {CollectionIsEmptyException} when list is empty
|
|
70
77
|
*/
|
|
71
78
|
shift(): T;
|
|
72
79
|
/**
|
|
73
80
|
* Delete node from list by index from start
|
|
81
|
+
* @throws {CollectionIsEmptyException} when list is empty
|
|
74
82
|
*/
|
|
75
83
|
deleteFromIndex(fromIndex: number): T;
|
|
76
84
|
/**
|
|
@@ -91,17 +99,18 @@ export default abstract class AbstractLinkedList<T> implements ILinkedList<T> {
|
|
|
91
99
|
has(item: T): boolean;
|
|
92
100
|
/**
|
|
93
101
|
* Get head element data
|
|
94
|
-
* @throws when head does not exist
|
|
102
|
+
* @throws {CollectionIsEmptyException} when head does not exist
|
|
95
103
|
*/
|
|
96
104
|
peek(): T;
|
|
97
105
|
/**
|
|
98
106
|
* Get tail element data
|
|
99
|
-
* @throws when tail does not exists
|
|
107
|
+
* @throws {CollectionIsEmptyException} when tail does not exists
|
|
100
108
|
*/
|
|
101
109
|
peekFromStart(): T;
|
|
102
110
|
/**
|
|
103
111
|
* Get list element by index from start
|
|
104
|
-
* @throws when
|
|
112
|
+
* @throws {CollectionIsEmptyException} when list is empty
|
|
113
|
+
* @throws {IndexOutOfBoundsException} when given index is out of range
|
|
105
114
|
*/
|
|
106
115
|
peekByIndex(index: number): T;
|
|
107
116
|
/**
|
|
@@ -114,7 +123,7 @@ export default abstract class AbstractLinkedList<T> implements ILinkedList<T> {
|
|
|
114
123
|
getAsArray(): Array<T>;
|
|
115
124
|
/**
|
|
116
125
|
* Add elements to list from array
|
|
117
|
-
* @throws when list is full
|
|
126
|
+
* @throws {CollectionIsFullException} when list is full
|
|
118
127
|
* */
|
|
119
128
|
pushFromArray(elements: Array<T>): void;
|
|
120
129
|
/**
|
|
@@ -16,7 +16,7 @@ var AbstractLinkedList = /** @class */ (function () {
|
|
|
16
16
|
}
|
|
17
17
|
/**
|
|
18
18
|
* Will calculate real capacity value
|
|
19
|
-
* @throws when capacity
|
|
19
|
+
* @throws {ValueOutOfRangeException} when capacity is out of range
|
|
20
20
|
*/
|
|
21
21
|
AbstractLinkedList.calculateCapacity = function (capacity) {
|
|
22
22
|
if (capacity === undefined) {
|
|
@@ -29,7 +29,7 @@ var AbstractLinkedList = /** @class */ (function () {
|
|
|
29
29
|
};
|
|
30
30
|
/**
|
|
31
31
|
* Will insert node between nodeLeft and nodeRight
|
|
32
|
-
* @throws when list is full
|
|
32
|
+
* @throws {CollectionIsFullException} when list is full
|
|
33
33
|
*/
|
|
34
34
|
AbstractLinkedList.prototype.insertNodeBetweenTwoNodes = function (targetNode, leftNode, rightNode) {
|
|
35
35
|
if (this.isFull()) {
|
|
@@ -52,9 +52,12 @@ var AbstractLinkedList = /** @class */ (function () {
|
|
|
52
52
|
};
|
|
53
53
|
/**
|
|
54
54
|
* Will remove the node from its neighbors nodes links
|
|
55
|
-
* @throws when
|
|
55
|
+
* @throws {CollectionIsEmptyException} when list is empty
|
|
56
56
|
*/
|
|
57
57
|
AbstractLinkedList.prototype.deleteNode = function (node) {
|
|
58
|
+
if (this.isEmpty()) {
|
|
59
|
+
throw new CollectionIsEmptyException_1.default("cannot delete because list is empty");
|
|
60
|
+
}
|
|
58
61
|
this.deleteNodeImpl(node);
|
|
59
62
|
this._length--;
|
|
60
63
|
if (this.isEmpty()) {
|
|
@@ -64,7 +67,8 @@ var AbstractLinkedList = /** @class */ (function () {
|
|
|
64
67
|
};
|
|
65
68
|
/**
|
|
66
69
|
* Will find node by its index
|
|
67
|
-
* @throws when
|
|
70
|
+
* @throws {CollectionIsEmptyException} when list is empty
|
|
71
|
+
* @throws {IndexOutOfBoundsException} when given index is out of range
|
|
68
72
|
*/
|
|
69
73
|
AbstractLinkedList.prototype.getNodeByIndex = function (index) {
|
|
70
74
|
var isIndexNotInRange = index < 0 || index > this._length;
|
|
@@ -84,6 +88,7 @@ var AbstractLinkedList = /** @class */ (function () {
|
|
|
84
88
|
};
|
|
85
89
|
/**
|
|
86
90
|
* Push into start
|
|
91
|
+
* @throws {CollectionIsFullException} when there is no space available
|
|
87
92
|
*/
|
|
88
93
|
AbstractLinkedList.prototype.unshift = function (value) {
|
|
89
94
|
var node = this.createNode(value);
|
|
@@ -92,6 +97,7 @@ var AbstractLinkedList = /** @class */ (function () {
|
|
|
92
97
|
};
|
|
93
98
|
/**
|
|
94
99
|
* Push into end
|
|
100
|
+
* @throws {CollectionIsFullException} when there is no space available
|
|
95
101
|
*/
|
|
96
102
|
AbstractLinkedList.prototype.push = function (value) {
|
|
97
103
|
var node = this.createNode(value);
|
|
@@ -100,6 +106,8 @@ var AbstractLinkedList = /** @class */ (function () {
|
|
|
100
106
|
};
|
|
101
107
|
/**
|
|
102
108
|
* Push from index
|
|
109
|
+
* @throws {IndexOutOfBoundsException} when given index is out of range
|
|
110
|
+
* @throws {CollectionIsFullException} when there is no space available
|
|
103
111
|
*/
|
|
104
112
|
AbstractLinkedList.prototype.pushFromIndex = function (value, fromIndex) {
|
|
105
113
|
var isIndexNotInRange = fromIndex < 0 || fromIndex > this._length;
|
|
@@ -119,28 +127,25 @@ var AbstractLinkedList = /** @class */ (function () {
|
|
|
119
127
|
};
|
|
120
128
|
/**
|
|
121
129
|
* Delete node from list's end
|
|
130
|
+
* @throws {CollectionIsEmptyException} when list is empty
|
|
122
131
|
*/
|
|
123
132
|
AbstractLinkedList.prototype.pop = function () {
|
|
124
|
-
if (this.isEmpty() || this._head === null) {
|
|
125
|
-
throw new CollectionIsEmptyException_1.default("cannot delete because list is empty");
|
|
126
|
-
}
|
|
127
133
|
var deletedNode = this.deleteNode(this._head);
|
|
128
134
|
this.popImpl();
|
|
129
135
|
return deletedNode.data;
|
|
130
136
|
};
|
|
131
137
|
/**
|
|
132
138
|
* Delete node from list's start and get its data
|
|
139
|
+
* @throws {CollectionIsEmptyException} when list is empty
|
|
133
140
|
*/
|
|
134
141
|
AbstractLinkedList.prototype.shift = function () {
|
|
135
|
-
if (this.isEmpty() || this._tail === null) {
|
|
136
|
-
throw new CollectionIsEmptyException_1.default("cannot delete because list is empty");
|
|
137
|
-
}
|
|
138
142
|
var deletedNode = this.deleteNode(this._tail);
|
|
139
143
|
this.shiftImpl();
|
|
140
144
|
return deletedNode.data;
|
|
141
145
|
};
|
|
142
146
|
/**
|
|
143
147
|
* Delete node from list by index from start
|
|
148
|
+
* @throws {CollectionIsEmptyException} when list is empty
|
|
144
149
|
*/
|
|
145
150
|
AbstractLinkedList.prototype.deleteFromIndex = function (fromIndex) {
|
|
146
151
|
var nodeToDelete = this.getNodeByIndex(fromIndex);
|
|
@@ -157,7 +162,7 @@ var AbstractLinkedList = /** @class */ (function () {
|
|
|
157
162
|
* Is list empty
|
|
158
163
|
*/
|
|
159
164
|
AbstractLinkedList.prototype.isEmpty = function () {
|
|
160
|
-
return this._length === 0;
|
|
165
|
+
return this._length === 0 || this._head === null || this._tail === null;
|
|
161
166
|
};
|
|
162
167
|
/**
|
|
163
168
|
* Is list full
|
|
@@ -173,7 +178,7 @@ var AbstractLinkedList = /** @class */ (function () {
|
|
|
173
178
|
};
|
|
174
179
|
/**
|
|
175
180
|
* Get head element data
|
|
176
|
-
* @throws when head does not exist
|
|
181
|
+
* @throws {CollectionIsEmptyException} when head does not exist
|
|
177
182
|
*/
|
|
178
183
|
AbstractLinkedList.prototype.peek = function () {
|
|
179
184
|
if (this.isEmpty() || !this._head) {
|
|
@@ -183,7 +188,7 @@ var AbstractLinkedList = /** @class */ (function () {
|
|
|
183
188
|
};
|
|
184
189
|
/**
|
|
185
190
|
* Get tail element data
|
|
186
|
-
* @throws when tail does not exists
|
|
191
|
+
* @throws {CollectionIsEmptyException} when tail does not exists
|
|
187
192
|
*/
|
|
188
193
|
AbstractLinkedList.prototype.peekFromStart = function () {
|
|
189
194
|
if (this.isEmpty() || !this._tail) {
|
|
@@ -193,7 +198,8 @@ var AbstractLinkedList = /** @class */ (function () {
|
|
|
193
198
|
};
|
|
194
199
|
/**
|
|
195
200
|
* Get list element by index from start
|
|
196
|
-
* @throws when
|
|
201
|
+
* @throws {CollectionIsEmptyException} when list is empty
|
|
202
|
+
* @throws {IndexOutOfBoundsException} when given index is out of range
|
|
197
203
|
*/
|
|
198
204
|
AbstractLinkedList.prototype.peekByIndex = function (index) {
|
|
199
205
|
var node = this.getNodeByIndex(index);
|
|
@@ -224,7 +230,7 @@ var AbstractLinkedList = /** @class */ (function () {
|
|
|
224
230
|
};
|
|
225
231
|
/**
|
|
226
232
|
* Add elements to list from array
|
|
227
|
-
* @throws when list is full
|
|
233
|
+
* @throws {CollectionIsFullException} when list is full
|
|
228
234
|
* */
|
|
229
235
|
AbstractLinkedList.prototype.pushFromArray = function (elements) {
|
|
230
236
|
var _this = this;
|
|
@@ -238,4 +244,4 @@ var AbstractLinkedList = /** @class */ (function () {
|
|
|
238
244
|
return AbstractLinkedList;
|
|
239
245
|
}());
|
|
240
246
|
exports.default = AbstractLinkedList;
|
|
241
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
247
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQWJzdHJhY3RMaW5rZWRMaXN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9kYXRhLXN0cnVjdHVyZXMvTGlua2VkTGlzdC9BYnN0cmFjdExpbmtlZExpc3QvQWJzdHJhY3RMaW5rZWRMaXN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBRUEseUZBQW9GO0FBQ3BGLDJGQUFzRjtBQUN0Riw2RkFBd0Y7QUFDeEYsMkZBQXNGO0FBRXRGO0lBTUU7O09BRUc7SUFDSCw0QkFBc0IsUUFBaUI7UUFDckMsSUFBSSxDQUFDLFNBQVMsR0FBRyxrQkFBa0IsQ0FBQyxpQkFBaUIsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUNoRSxJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQztRQUNsQixJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQztRQUNsQixJQUFJLENBQUMsT0FBTyxHQUFHLENBQUMsQ0FBQztJQUNuQixDQUFDO0lBRUQ7OztPQUdHO0lBQ1ksb0NBQWlCLEdBQWhDLFVBQWlDLFFBQWlCO1FBQ2hELElBQUksUUFBUSxLQUFLLFNBQVMsRUFBRTtZQUMxQixPQUFPLE1BQU0sQ0FBQyxTQUFTLENBQUM7U0FDekI7UUFDRCxJQUFJLFFBQVEsSUFBSSxDQUFDLEVBQUU7WUFDakIsTUFBTSxJQUFJLGtDQUF3QixDQUFDLGdDQUFnQyxDQUFDLENBQUM7U0FDdEU7UUFFRCxPQUFPLFFBQVEsQ0FBQztJQUNsQixDQUFDO0lBRUQ7OztPQUdHO0lBQ0ssc0RBQXlCLEdBQWpDLFVBQ0UsVUFBaUMsRUFDakMsUUFBc0MsRUFDdEMsU0FBdUM7UUFFdkMsSUFBSSxJQUFJLENBQUMsTUFBTSxFQUFFLEVBQUU7WUFDakIsTUFBTSxJQUFJLG1DQUF5QixDQUNqQyx1Q0FBdUMsQ0FDeEMsQ0FBQztTQUNIO1FBQ0QsSUFBSSxJQUFJLENBQUMsS0FBSyxLQUFLLElBQUksRUFBRTtZQUN2QixJQUFJLENBQUMsS0FBSyxHQUFH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
|
|
@@ -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
|
}
|
|
@@ -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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
|
|
@@ -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
|
}
|
|
@@ -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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
|
|
@@ -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
|
/**
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
var ValueOutOfRangeException_1 = require("../../exceptions/ValueOutOfRangeException");
|
|
4
|
-
var IsNotFoundException_1 = require("../../exceptions/IsNotFoundException");
|
|
5
4
|
var CollectionIsEmptyException_1 = require("../../exceptions/CollectionIsEmptyException");
|
|
6
5
|
/**
|
|
7
6
|
* Linear data structure
|
|
@@ -11,6 +10,7 @@ var CollectionIsEmptyException_1 = require("../../exceptions/CollectionIsEmptyEx
|
|
|
11
10
|
var LoopedArray = /** @class */ (function () {
|
|
12
11
|
/**
|
|
13
12
|
* Create empty instance
|
|
13
|
+
* @throws {ValueOutOfRangeException} when given capacity is not valid
|
|
14
14
|
*/
|
|
15
15
|
function LoopedArray(capacity) {
|
|
16
16
|
this._realLength = 0;
|
|
@@ -54,6 +54,7 @@ var LoopedArray = /** @class */ (function () {
|
|
|
54
54
|
};
|
|
55
55
|
/**
|
|
56
56
|
* Delete node from array's end
|
|
57
|
+
* @throws {CollectionIsEmptyException} when array is empty
|
|
57
58
|
*/
|
|
58
59
|
LoopedArray.prototype.pop = function () {
|
|
59
60
|
if (this.isEmpty()) {
|
|
@@ -61,13 +62,11 @@ var LoopedArray = /** @class */ (function () {
|
|
|
61
62
|
}
|
|
62
63
|
this._realLength--;
|
|
63
64
|
var deletedItem = this._array.pop();
|
|
64
|
-
if (deletedItem === undefined) {
|
|
65
|
-
throw new IsNotFoundException_1.default("cannot delete last element because of it does not exists");
|
|
66
|
-
}
|
|
67
65
|
return deletedItem;
|
|
68
66
|
};
|
|
69
67
|
/**
|
|
70
68
|
* Delete node from array's start
|
|
69
|
+
* @throws {CollectionIsEmptyException} when array is empty
|
|
71
70
|
*/
|
|
72
71
|
LoopedArray.prototype.shift = function () {
|
|
73
72
|
if (this.isEmpty()) {
|
|
@@ -75,9 +74,6 @@ var LoopedArray = /** @class */ (function () {
|
|
|
75
74
|
}
|
|
76
75
|
this._realLength--;
|
|
77
76
|
var deletedItem = this._array.shift();
|
|
78
|
-
if (deletedItem === undefined) {
|
|
79
|
-
throw new IsNotFoundException_1.default("cannot delete first element because of it does not exists");
|
|
80
|
-
}
|
|
81
77
|
return deletedItem;
|
|
82
78
|
};
|
|
83
79
|
/**
|
|
@@ -166,4 +162,4 @@ var LoopedArray = /** @class */ (function () {
|
|
|
166
162
|
return LoopedArray;
|
|
167
163
|
}());
|
|
168
164
|
exports.default = LoopedArray;
|
|
169
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
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
|
/**
|