data-structure-typed 1.48.5 → 1.48.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +1 -1
- package/README.md +109 -59
- package/README_zh-CN.md +1028 -0
- package/benchmark/report.html +16 -16
- package/benchmark/report.json +204 -174
- package/dist/cjs/data-structures/binary-tree/binary-tree.d.ts +7 -16
- package/dist/cjs/data-structures/binary-tree/binary-tree.js +24 -19
- package/dist/cjs/data-structures/binary-tree/binary-tree.js.map +1 -1
- package/dist/cjs/data-structures/binary-tree/bst.d.ts +35 -11
- package/dist/cjs/data-structures/binary-tree/bst.js +58 -39
- package/dist/cjs/data-structures/binary-tree/bst.js.map +1 -1
- package/dist/cjs/data-structures/hash/hash-map.js.map +1 -1
- package/dist/cjs/data-structures/linked-list/doubly-linked-list.d.ts +4 -4
- package/dist/cjs/data-structures/linked-list/doubly-linked-list.js +4 -4
- package/dist/cjs/data-structures/linked-list/doubly-linked-list.js.map +1 -1
- package/dist/cjs/data-structures/linked-list/singly-linked-list.d.ts +4 -4
- package/dist/cjs/data-structures/linked-list/singly-linked-list.js +4 -4
- package/dist/cjs/data-structures/linked-list/singly-linked-list.js.map +1 -1
- package/dist/cjs/data-structures/queue/deque.d.ts +9 -9
- package/dist/cjs/data-structures/queue/deque.js +9 -9
- package/dist/cjs/data-structures/queue/deque.js.map +1 -1
- package/dist/cjs/interfaces/binary-tree.d.ts +1 -1
- package/dist/mjs/data-structures/binary-tree/binary-tree.d.ts +7 -16
- package/dist/mjs/data-structures/binary-tree/binary-tree.js +24 -19
- package/dist/mjs/data-structures/binary-tree/bst.d.ts +35 -11
- package/dist/mjs/data-structures/binary-tree/bst.js +58 -39
- package/dist/mjs/data-structures/linked-list/doubly-linked-list.d.ts +4 -4
- package/dist/mjs/data-structures/linked-list/doubly-linked-list.js +4 -4
- package/dist/mjs/data-structures/linked-list/singly-linked-list.d.ts +4 -4
- package/dist/mjs/data-structures/linked-list/singly-linked-list.js +4 -4
- package/dist/mjs/data-structures/queue/deque.d.ts +9 -9
- package/dist/mjs/data-structures/queue/deque.js +9 -9
- package/dist/mjs/interfaces/binary-tree.d.ts +1 -1
- package/dist/umd/data-structure-typed.js +99 -78
- package/dist/umd/data-structure-typed.min.js +2 -2
- package/dist/umd/data-structure-typed.min.js.map +1 -1
- package/package.json +2 -2
- package/src/data-structures/binary-tree/avl-tree.ts +1 -1
- package/src/data-structures/binary-tree/binary-tree.ts +31 -20
- package/src/data-structures/binary-tree/bst.ts +73 -46
- package/src/data-structures/binary-tree/rb-tree.ts +1 -1
- package/src/data-structures/binary-tree/tree-multimap.ts +1 -1
- package/src/data-structures/hash/hash-map.ts +1 -1
- package/src/data-structures/linked-list/doubly-linked-list.ts +4 -4
- package/src/data-structures/linked-list/singly-linked-list.ts +4 -4
- package/src/data-structures/queue/deque.ts +10 -10
- package/src/data-structures/queue/queue.ts +1 -1
- package/src/interfaces/binary-tree.ts +1 -1
- package/src/types/data-structures/binary-tree/rb-tree.ts +1 -1
- package/src/types/data-structures/heap/heap.ts +1 -1
- package/src/types/data-structures/priority-queue/priority-queue.ts +1 -1
- package/test/performance/data-structures/binary-tree/rb-tree.test.ts +1 -1
- package/test/performance/data-structures/hash/hash-map.test.ts +8 -8
- package/test/performance/data-structures/linked-list/doubly-linked-list.test.ts +2 -2
- package/test/performance/data-structures/linked-list/singly-linked-list.test.ts +12 -1
- package/test/performance/data-structures/priority-queue/priority-queue.test.ts +1 -1
- package/test/performance/data-structures/queue/deque.test.ts +27 -15
- package/test/performance/data-structures/queue/queue.test.ts +27 -4
- package/test/performance/data-structures/stack/stack.test.ts +2 -2
- package/test/unit/data-structures/binary-tree/bst.test.ts +29 -29
- package/test/unit/data-structures/binary-tree/overall.test.ts +1 -1
- package/test/unit/data-structures/linked-list/singly-linked-list.test.ts +2 -2
- package/test/unit/data-structures/queue/deque.test.ts +15 -15
|
@@ -5,7 +5,7 @@ import { magnitude } from '../../../utils';
|
|
|
5
5
|
import { isCompetitor } from '../../../config';
|
|
6
6
|
|
|
7
7
|
export const suite = new Benchmark.Suite();
|
|
8
|
-
const { LINEAR } = magnitude;
|
|
8
|
+
const { LINEAR, HUNDRED_THOUSAND } = magnitude;
|
|
9
9
|
|
|
10
10
|
suite.add(`${LINEAR.toLocaleString()} push`, () => {
|
|
11
11
|
const deque = new Deque<number>();
|
|
@@ -13,7 +13,7 @@ suite.add(`${LINEAR.toLocaleString()} push`, () => {
|
|
|
13
13
|
});
|
|
14
14
|
|
|
15
15
|
if (isCompetitor) {
|
|
16
|
-
suite.add(
|
|
16
|
+
suite.add(`CPT ${LINEAR.toLocaleString()} push`, () => {
|
|
17
17
|
const _deque = new CDeque<number>();
|
|
18
18
|
for (let i = 0; i < LINEAR; i++) _deque.pushBack(i);
|
|
19
19
|
});
|
|
@@ -26,16 +26,28 @@ suite.add(`${LINEAR.toLocaleString()} push & pop`, () => {
|
|
|
26
26
|
for (let i = 0; i < LINEAR; i++) _deque.push(i);
|
|
27
27
|
for (let i = 0; i < LINEAR; i++) _deque.pop();
|
|
28
28
|
|
|
29
|
-
})
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
})
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
})
|
|
29
|
+
})
|
|
30
|
+
.add(`${HUNDRED_THOUSAND.toLocaleString()} push & shift`, () => {
|
|
31
|
+
const _deque = new Deque<number>();
|
|
32
|
+
|
|
33
|
+
for (let i = 0; i < HUNDRED_THOUSAND; i++) _deque.push(i);
|
|
34
|
+
for (let i = 0; i < HUNDRED_THOUSAND; i++) _deque.shift();
|
|
35
|
+
})
|
|
36
|
+
.add(`Native Array ${HUNDRED_THOUSAND.toLocaleString()} push & shift`, () => {
|
|
37
|
+
const _deque = new Array<number>();
|
|
38
|
+
|
|
39
|
+
for (let i = 0; i < HUNDRED_THOUSAND; i++) _deque.push(i);
|
|
40
|
+
for (let i = 0; i < HUNDRED_THOUSAND; i++) _deque.shift();
|
|
41
|
+
})
|
|
42
|
+
.add(`${HUNDRED_THOUSAND.toLocaleString()} unshift & shift`, () => {
|
|
43
|
+
const _deque = new Deque<number>();
|
|
44
|
+
|
|
45
|
+
for (let i = 0; i < HUNDRED_THOUSAND; i++) _deque.unshift(i);
|
|
46
|
+
for (let i = 0; i < HUNDRED_THOUSAND; i++) _deque.shift();
|
|
47
|
+
})
|
|
48
|
+
.add(`Native Array ${HUNDRED_THOUSAND.toLocaleString()} unshift & shift`, () => {
|
|
49
|
+
const _deque = new Array<number>();
|
|
50
|
+
|
|
51
|
+
for (let i = 0; i < HUNDRED_THOUSAND; i++) _deque.unshift(i);
|
|
52
|
+
for (let i = 0; i < HUNDRED_THOUSAND; i++) _deque.shift();
|
|
53
|
+
});
|
|
@@ -5,7 +5,7 @@ import { magnitude } from '../../../utils';
|
|
|
5
5
|
import { isCompetitor } from '../../../config';
|
|
6
6
|
|
|
7
7
|
const suite = new Benchmark.Suite();
|
|
8
|
-
const { LINEAR } = magnitude;
|
|
8
|
+
const { LINEAR, HUNDRED_THOUSAND } = magnitude;
|
|
9
9
|
|
|
10
10
|
suite.add(`${LINEAR.toLocaleString()} push`, () => {
|
|
11
11
|
const queue = new Queue<number>();
|
|
@@ -15,7 +15,7 @@ suite.add(`${LINEAR.toLocaleString()} push`, () => {
|
|
|
15
15
|
}
|
|
16
16
|
});
|
|
17
17
|
if (isCompetitor) {
|
|
18
|
-
suite.add(
|
|
18
|
+
suite.add(`CPT ${LINEAR.toLocaleString()} push`, () => {
|
|
19
19
|
const queue = new CQueue<number>();
|
|
20
20
|
|
|
21
21
|
for (let i = 0; i < LINEAR; i++) {
|
|
@@ -23,13 +23,36 @@ if (isCompetitor) {
|
|
|
23
23
|
}
|
|
24
24
|
});
|
|
25
25
|
}
|
|
26
|
-
suite.add(`${
|
|
26
|
+
suite.add(`${HUNDRED_THOUSAND.toLocaleString()} push & shift`, () => {
|
|
27
27
|
const queue = new Queue<number>();
|
|
28
28
|
|
|
29
|
-
for (let i = 0; i <
|
|
29
|
+
for (let i = 0; i < HUNDRED_THOUSAND; i++) {
|
|
30
30
|
queue.push(i);
|
|
31
|
+
}
|
|
32
|
+
for (let i = 0; i < HUNDRED_THOUSAND; i++) {
|
|
31
33
|
queue.shift();
|
|
32
34
|
}
|
|
33
35
|
});
|
|
36
|
+
suite.add(`Native Array ${HUNDRED_THOUSAND.toLocaleString()} push & shift`, () => {
|
|
37
|
+
const arr = new Array<number>();
|
|
38
|
+
|
|
39
|
+
for (let i = 0; i < HUNDRED_THOUSAND; i++) {
|
|
40
|
+
arr.push(i);
|
|
41
|
+
}
|
|
42
|
+
for (let i = 0; i < HUNDRED_THOUSAND; i++) {
|
|
43
|
+
arr.shift();
|
|
44
|
+
}
|
|
45
|
+
})
|
|
46
|
+
.add(`Native Array ${HUNDRED_THOUSAND.toLocaleString()} push & pop`, () => {
|
|
47
|
+
const arr = new Array<number>();
|
|
48
|
+
|
|
49
|
+
for (let i = 0; i < HUNDRED_THOUSAND; i++) {
|
|
50
|
+
arr.push(i);
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
for (let i = 0; i < HUNDRED_THOUSAND; i++) {
|
|
54
|
+
arr.pop();
|
|
55
|
+
}
|
|
56
|
+
});
|
|
34
57
|
|
|
35
58
|
export { suite };
|
|
@@ -15,7 +15,7 @@ suite.add(`${LINEAR.toLocaleString()} push`, () => {
|
|
|
15
15
|
}
|
|
16
16
|
});
|
|
17
17
|
if (isCompetitor) {
|
|
18
|
-
suite.add(
|
|
18
|
+
suite.add(`CPT ${LINEAR.toLocaleString()} push`, () => {
|
|
19
19
|
const queue = new CStack<number>();
|
|
20
20
|
|
|
21
21
|
for (let i = 0; i < LINEAR; i++) {
|
|
@@ -34,7 +34,7 @@ suite.add(`${LINEAR.toLocaleString()} push & pop`, () => {
|
|
|
34
34
|
}
|
|
35
35
|
});
|
|
36
36
|
if (isCompetitor) {
|
|
37
|
-
suite.add(
|
|
37
|
+
suite.add(`CPT ${LINEAR.toLocaleString()} push & pop`, () => {
|
|
38
38
|
const queue = new CStack<number>();
|
|
39
39
|
|
|
40
40
|
for (let i = 0; i < LINEAR; i++) {
|
|
@@ -10,7 +10,7 @@ describe('BST operations test', () => {
|
|
|
10
10
|
bst.add([11, 11]);
|
|
11
11
|
bst.add([3, 3]);
|
|
12
12
|
const idsAndValues: [number, number][] = [[15, 15], [1, 1], [8, 8], [13, 13], [16, 16], [2, 2], [6, 6], [9, 9], [12, 12], [14, 14], [4, 4], [7, 7], [10, 10], [5, 5]];
|
|
13
|
-
bst.addMany(idsAndValues, false);
|
|
13
|
+
bst.addMany(idsAndValues, undefined, false);
|
|
14
14
|
expect(bst.root).toBeInstanceOf(BSTNode);
|
|
15
15
|
|
|
16
16
|
if (bst.root) expect(bst.root.key).toBe(11);
|
|
@@ -189,28 +189,27 @@ describe('BST operations test', () => {
|
|
|
189
189
|
});
|
|
190
190
|
|
|
191
191
|
it('should perform various operations on a Binary Search Tree with object values', () => {
|
|
192
|
-
const objBST = new BST<number, {
|
|
192
|
+
const objBST = new BST<number, { name: string; age: number }>();
|
|
193
193
|
expect(objBST).toBeInstanceOf(BST);
|
|
194
|
-
objBST.add([11, {
|
|
195
|
-
objBST.add([3, {
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
objBST.addMany(values, false);
|
|
194
|
+
objBST.add([11, { name: '11', age: 11 }]);
|
|
195
|
+
objBST.add([3, { name: '3', age: 3 }]);
|
|
196
|
+
|
|
197
|
+
objBST.addMany([15, 1, 8, 13, 16, 2, 6, 9, 12, 14, 4, 7, 10, 5], [
|
|
198
|
+
{ "name": "Alice", "age": 15 },
|
|
199
|
+
{ "name": "Bob", "age": 1 },
|
|
200
|
+
{ "name": "Charlie", "age": 8 },
|
|
201
|
+
{ "name": "David", "age": 13 },
|
|
202
|
+
{ "name": "Emma", "age": 16 },
|
|
203
|
+
{ "name": "Frank", "age": 2 },
|
|
204
|
+
{ "name": "Grace", "age": 6 },
|
|
205
|
+
{ "name": "Hannah", "age": 9 },
|
|
206
|
+
{ "name": "Isaac", "age": 12 },
|
|
207
|
+
{ "name": "Jack", "age": 14 },
|
|
208
|
+
{ "name": "Katie", "age": 4 },
|
|
209
|
+
{ "name": "Liam", "age": 7 },
|
|
210
|
+
{ "name": "Mia", "age": 10 },
|
|
211
|
+
{ "name": "Noah", "age": 5 }
|
|
212
|
+
], false);
|
|
214
213
|
|
|
215
214
|
expect(objBST.root).toBeInstanceOf(BSTNode);
|
|
216
215
|
|
|
@@ -232,7 +231,7 @@ describe('BST operations test', () => {
|
|
|
232
231
|
expect(leftMost?.key).toBe(1);
|
|
233
232
|
|
|
234
233
|
const node15 = objBST.getNode(15);
|
|
235
|
-
expect(node15?.value).toEqual({
|
|
234
|
+
expect(node15?.value).toEqual({ name: 'Alice', age: 15 });
|
|
236
235
|
const minNodeBySpecificNode = node15 && objBST.getLeftMost(node15);
|
|
237
236
|
expect(minNodeBySpecificNode?.key).toBe(12);
|
|
238
237
|
|
|
@@ -256,7 +255,7 @@ describe('BST operations test', () => {
|
|
|
256
255
|
objBST.perfectlyBalance();
|
|
257
256
|
expect(objBST.isPerfectlyBalanced()).toBe(true);
|
|
258
257
|
|
|
259
|
-
const bfsNodesAfterBalanced: BSTNode<number, {
|
|
258
|
+
const bfsNodesAfterBalanced: BSTNode<number, { name: string; age: number }>[] = [];
|
|
260
259
|
objBST.bfs(node => bfsNodesAfterBalanced.push(node));
|
|
261
260
|
expect(bfsNodesAfterBalanced[0].key).toBe(8);
|
|
262
261
|
expect(bfsNodesAfterBalanced[bfsNodesAfterBalanced.length - 1].key).toBe(16);
|
|
@@ -381,7 +380,7 @@ describe('BST operations test', () => {
|
|
|
381
380
|
expect(bfsIDs[1]).toBe(12);
|
|
382
381
|
expect(bfsIDs[2]).toBe(16);
|
|
383
382
|
|
|
384
|
-
const bfsNodes: BSTNode<number, {
|
|
383
|
+
const bfsNodes: BSTNode<number, { name: string; age: number }>[] = [];
|
|
385
384
|
objBST.bfs(node => bfsNodes.push(node));
|
|
386
385
|
expect(bfsNodes[0].key).toBe(2);
|
|
387
386
|
expect(bfsNodes[1].key).toBe(12);
|
|
@@ -396,7 +395,7 @@ describe('BST operations test recursively', () => {
|
|
|
396
395
|
bst.add([11, 11]);
|
|
397
396
|
bst.add([3, 3]);
|
|
398
397
|
const idsAndValues = [15, 1, 8, 13, 16, 2, 6, 9, 12, 14, 4, 7, 10, 5];
|
|
399
|
-
bst.addMany(idsAndValues, false);
|
|
398
|
+
bst.addMany(idsAndValues, undefined, false);
|
|
400
399
|
expect(bst.root).toBeInstanceOf(BSTNode);
|
|
401
400
|
|
|
402
401
|
if (bst.root) expect(bst.root.key).toBe(11);
|
|
@@ -580,7 +579,7 @@ describe('BST operations test recursively', () => {
|
|
|
580
579
|
expect(objBST).toBeInstanceOf(BST);
|
|
581
580
|
objBST.add([11, { key: 11, keyA: 11 }]);
|
|
582
581
|
objBST.add([3, { key: 3, keyA: 3 }]);
|
|
583
|
-
const
|
|
582
|
+
const entries: [number, { key: number; keyA: number }][] = [
|
|
584
583
|
[15, { key: 15, keyA: 15 }],
|
|
585
584
|
[1, { key: 1, keyA: 1 }],
|
|
586
585
|
[8, { key: 8, keyA: 8 }],
|
|
@@ -598,7 +597,8 @@ describe('BST operations test recursively', () => {
|
|
|
598
597
|
];
|
|
599
598
|
|
|
600
599
|
objBST.addMany(
|
|
601
|
-
|
|
600
|
+
entries,
|
|
601
|
+
undefined,
|
|
602
602
|
false
|
|
603
603
|
);
|
|
604
604
|
|
|
@@ -829,7 +829,7 @@ describe('BST Performance test', function () {
|
|
|
829
829
|
|
|
830
830
|
it('should the lastKey of a BST to be the largest key', function () {
|
|
831
831
|
const bst = new BST();
|
|
832
|
-
bst.addMany([9, 8, 7, 3, 1, 2, 5, 4, 6], false);
|
|
832
|
+
bst.addMany([9, 8, 7, 3, 1, 2, 5, 4, 6], undefined, false);
|
|
833
833
|
// TODO
|
|
834
834
|
// expect(bst.lastKey()).toBe(9);
|
|
835
835
|
});
|
|
@@ -5,7 +5,7 @@ describe('Overall BinaryTree Test', () => {
|
|
|
5
5
|
const bst = new BST();
|
|
6
6
|
bst.add(11);
|
|
7
7
|
bst.add(3);
|
|
8
|
-
bst.addMany([15, 1, 8, 13, 16, 2, 6, 9, 12, 14, 4, 7, 10, 5], false);
|
|
8
|
+
bst.addMany([15, 1, 8, 13, 16, 2, 6, 9, 12, 14, 4, 7, 10, 5], undefined, false);
|
|
9
9
|
bst.size === 16; // true
|
|
10
10
|
expect(bst.size).toBe(16); // true
|
|
11
11
|
bst.has(6); // true
|
|
@@ -32,7 +32,7 @@ describe('SinglyLinkedList Operation Test', () => {
|
|
|
32
32
|
list.push(3);
|
|
33
33
|
const popped = list.pop();
|
|
34
34
|
expect(popped).toBe(3);
|
|
35
|
-
expect(list.
|
|
35
|
+
expect(list.pollLast()).toBe(2);
|
|
36
36
|
expect(list.toArray()).toEqual([1]);
|
|
37
37
|
});
|
|
38
38
|
|
|
@@ -49,7 +49,7 @@ describe('SinglyLinkedList Operation Test', () => {
|
|
|
49
49
|
list.push(3);
|
|
50
50
|
const shifted = list.shift();
|
|
51
51
|
expect(shifted).toBe(1);
|
|
52
|
-
expect(list.
|
|
52
|
+
expect(list.pollFirst()).toBe(2);
|
|
53
53
|
expect(list.toArray()).toEqual([3]);
|
|
54
54
|
});
|
|
55
55
|
|
|
@@ -22,13 +22,13 @@ describe('Deque Tests', () => {
|
|
|
22
22
|
it('should delete elements from the beginning and end', () => {
|
|
23
23
|
deque.addFirst(1);
|
|
24
24
|
deque.addLast(2);
|
|
25
|
-
deque.
|
|
26
|
-
deque.
|
|
25
|
+
deque.pollFirst();
|
|
26
|
+
deque.pollLast();
|
|
27
27
|
expect(deque.isEmpty()).toBe(true);
|
|
28
28
|
});
|
|
29
29
|
|
|
30
30
|
it('should handle edge case when removing from an empty deque', () => {
|
|
31
|
-
const result = deque.
|
|
31
|
+
const result = deque.pollFirst();
|
|
32
32
|
expect(result).toBeUndefined();
|
|
33
33
|
});
|
|
34
34
|
|
|
@@ -40,18 +40,18 @@ describe('Deque Tests', () => {
|
|
|
40
40
|
|
|
41
41
|
it('should handle adding and removing elements alternately', () => {
|
|
42
42
|
deque.addFirst(1);
|
|
43
|
-
expect(deque.
|
|
43
|
+
expect(deque.pollFirst()).toBe(1);
|
|
44
44
|
deque.addLast(2);
|
|
45
|
-
expect(deque.
|
|
45
|
+
expect(deque.pollLast()).toBe(2);
|
|
46
46
|
expect(deque.isEmpty()).toBe(true);
|
|
47
47
|
});
|
|
48
48
|
|
|
49
49
|
it('should handle adding and removing elements in a cyclic manner', () => {
|
|
50
50
|
deque.addFirst(1);
|
|
51
51
|
deque.addLast(2);
|
|
52
|
-
expect(deque.
|
|
52
|
+
expect(deque.pollFirst()).toBe(1);
|
|
53
53
|
deque.addFirst(3);
|
|
54
|
-
expect(deque.
|
|
54
|
+
expect(deque.pollLast()).toBe(2);
|
|
55
55
|
expect(deque.size).toBe(1);
|
|
56
56
|
});
|
|
57
57
|
// Add more test cases as needed
|
|
@@ -75,13 +75,13 @@ describe('Deque Tests', () => {
|
|
|
75
75
|
// it('should delete elements from the beginning and end', () => {
|
|
76
76
|
// objectDeque.addFirst('one');
|
|
77
77
|
// objectDeque.addLast('two');
|
|
78
|
-
// objectDeque.
|
|
79
|
-
// objectDeque.
|
|
78
|
+
// objectDeque.pollFirst();
|
|
79
|
+
// objectDeque.pollLast();
|
|
80
80
|
// expect(objectDeque.isEmpty()).toBe(true);
|
|
81
81
|
// });
|
|
82
82
|
//
|
|
83
83
|
// it('should handle edge case when removing from an empty deque', () => {
|
|
84
|
-
// const result = objectDeque.
|
|
84
|
+
// const result = objectDeque.pollFirst();
|
|
85
85
|
// expect(result).toBeUndefined();
|
|
86
86
|
// });
|
|
87
87
|
//
|
|
@@ -136,8 +136,8 @@ describe('Deque', () => {
|
|
|
136
136
|
deque.addFirst(1);
|
|
137
137
|
deque.addLast(2);
|
|
138
138
|
|
|
139
|
-
const firstElement = deque.
|
|
140
|
-
const lastElement = deque.
|
|
139
|
+
const firstElement = deque.pollFirst();
|
|
140
|
+
const lastElement = deque.pollLast();
|
|
141
141
|
|
|
142
142
|
expect(deque.size).toBe(0);
|
|
143
143
|
expect(firstElement).toBe(1);
|
|
@@ -166,7 +166,7 @@ describe('Deque', () => {
|
|
|
166
166
|
deque.addLast(1);
|
|
167
167
|
expect(deque.isEmpty()).toBe(false);
|
|
168
168
|
|
|
169
|
-
deque.
|
|
169
|
+
deque.pollFirst();
|
|
170
170
|
expect(deque.isEmpty()).toBe(true);
|
|
171
171
|
});
|
|
172
172
|
});
|
|
@@ -200,7 +200,7 @@ describe('Deque', () => {
|
|
|
200
200
|
// deque.addLast(1);
|
|
201
201
|
// deque.addLast(2);
|
|
202
202
|
//
|
|
203
|
-
// const removedElement = deque.
|
|
203
|
+
// const removedElement = deque.pollFirst();
|
|
204
204
|
//
|
|
205
205
|
// expect(deque.size).toBe(1);
|
|
206
206
|
// expect(removedElement).toBe(1);
|
|
@@ -211,7 +211,7 @@ describe('Deque', () => {
|
|
|
211
211
|
// deque.addLast(1);
|
|
212
212
|
// deque.addLast(2);
|
|
213
213
|
//
|
|
214
|
-
// const removedElement = deque.
|
|
214
|
+
// const removedElement = deque.pollFirst();
|
|
215
215
|
//
|
|
216
216
|
// expect(deque.size).toBe(1);
|
|
217
217
|
// expect(removedElement).toBe(1);
|