data-structure-typed 1.42.7 → 1.42.9
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 +13 -13
- package/benchmark/report.html +12 -12
- package/benchmark/report.json +106 -106
- package/dist/cjs/src/data-structures/binary-tree/avl-tree.d.ts +88 -23
- package/dist/cjs/src/data-structures/binary-tree/avl-tree.js +88 -23
- package/dist/cjs/src/data-structures/binary-tree/avl-tree.js.map +1 -1
- package/dist/cjs/src/data-structures/binary-tree/binary-tree.d.ts +180 -74
- package/dist/cjs/src/data-structures/binary-tree/binary-tree.js +388 -201
- package/dist/cjs/src/data-structures/binary-tree/binary-tree.js.map +1 -1
- package/dist/cjs/src/data-structures/binary-tree/bst.d.ts +121 -66
- package/dist/cjs/src/data-structures/binary-tree/bst.js +121 -67
- package/dist/cjs/src/data-structures/binary-tree/bst.js.map +1 -1
- package/dist/cjs/src/data-structures/binary-tree/rb-tree.d.ts +72 -5
- package/dist/cjs/src/data-structures/binary-tree/rb-tree.js +95 -18
- package/dist/cjs/src/data-structures/binary-tree/rb-tree.js.map +1 -1
- package/dist/cjs/src/data-structures/binary-tree/tree-multimap.d.ts +82 -43
- package/dist/cjs/src/data-structures/binary-tree/tree-multimap.js +82 -43
- package/dist/cjs/src/data-structures/binary-tree/tree-multimap.js.map +1 -1
- package/dist/cjs/src/data-structures/graph/abstract-graph.d.ts +139 -36
- package/dist/cjs/src/data-structures/graph/abstract-graph.js +147 -36
- package/dist/cjs/src/data-structures/graph/abstract-graph.js.map +1 -1
- package/dist/cjs/src/data-structures/graph/directed-graph.d.ts +126 -0
- package/dist/cjs/src/data-structures/graph/directed-graph.js +126 -0
- package/dist/cjs/src/data-structures/graph/directed-graph.js.map +1 -1
- package/dist/cjs/src/data-structures/graph/undirected-graph.d.ts +63 -0
- package/dist/cjs/src/data-structures/graph/undirected-graph.js +63 -0
- package/dist/cjs/src/data-structures/graph/undirected-graph.js.map +1 -1
- package/dist/cjs/src/data-structures/heap/heap.d.ts +175 -12
- package/dist/cjs/src/data-structures/heap/heap.js +175 -12
- package/dist/cjs/src/data-structures/heap/heap.js.map +1 -1
- package/dist/cjs/src/data-structures/linked-list/doubly-linked-list.d.ts +203 -0
- package/dist/cjs/src/data-structures/linked-list/doubly-linked-list.js +203 -0
- package/dist/cjs/src/data-structures/linked-list/doubly-linked-list.js.map +1 -1
- package/dist/cjs/src/data-structures/linked-list/singly-linked-list.d.ts +182 -0
- package/dist/cjs/src/data-structures/linked-list/singly-linked-list.js +182 -0
- package/dist/cjs/src/data-structures/linked-list/singly-linked-list.js.map +1 -1
- package/dist/cjs/src/data-structures/linked-list/skip-linked-list.d.ts +64 -0
- package/dist/cjs/src/data-structures/linked-list/skip-linked-list.js +64 -0
- package/dist/cjs/src/data-structures/linked-list/skip-linked-list.js.map +1 -1
- package/dist/cjs/src/data-structures/queue/deque.d.ts +113 -3
- package/dist/cjs/src/data-structures/queue/deque.js +113 -3
- package/dist/cjs/src/data-structures/queue/deque.js.map +1 -1
- package/dist/cjs/src/data-structures/queue/queue.d.ts +87 -0
- package/dist/cjs/src/data-structures/queue/queue.js +87 -0
- package/dist/cjs/src/data-structures/queue/queue.js.map +1 -1
- package/dist/cjs/src/data-structures/stack/stack.d.ts +42 -0
- package/dist/cjs/src/data-structures/stack/stack.js +42 -0
- package/dist/cjs/src/data-structures/stack/stack.js.map +1 -1
- package/dist/cjs/src/data-structures/trie/trie.d.ts +76 -0
- package/dist/cjs/src/data-structures/trie/trie.js +76 -1
- package/dist/cjs/src/data-structures/trie/trie.js.map +1 -1
- package/dist/mjs/src/data-structures/binary-tree/avl-tree.d.ts +88 -23
- package/dist/mjs/src/data-structures/binary-tree/avl-tree.js +88 -23
- package/dist/mjs/src/data-structures/binary-tree/binary-tree.d.ts +180 -74
- package/dist/mjs/src/data-structures/binary-tree/binary-tree.js +388 -201
- package/dist/mjs/src/data-structures/binary-tree/bst.d.ts +121 -66
- package/dist/mjs/src/data-structures/binary-tree/bst.js +121 -67
- package/dist/mjs/src/data-structures/binary-tree/rb-tree.d.ts +72 -5
- package/dist/mjs/src/data-structures/binary-tree/rb-tree.js +95 -18
- package/dist/mjs/src/data-structures/binary-tree/tree-multimap.d.ts +82 -43
- package/dist/mjs/src/data-structures/binary-tree/tree-multimap.js +82 -43
- package/dist/mjs/src/data-structures/graph/abstract-graph.d.ts +139 -36
- package/dist/mjs/src/data-structures/graph/abstract-graph.js +147 -36
- package/dist/mjs/src/data-structures/graph/directed-graph.d.ts +126 -0
- package/dist/mjs/src/data-structures/graph/directed-graph.js +126 -0
- package/dist/mjs/src/data-structures/graph/undirected-graph.d.ts +63 -0
- package/dist/mjs/src/data-structures/graph/undirected-graph.js +63 -0
- package/dist/mjs/src/data-structures/heap/heap.d.ts +175 -12
- package/dist/mjs/src/data-structures/heap/heap.js +175 -12
- package/dist/mjs/src/data-structures/linked-list/doubly-linked-list.d.ts +203 -0
- package/dist/mjs/src/data-structures/linked-list/doubly-linked-list.js +203 -0
- package/dist/mjs/src/data-structures/linked-list/singly-linked-list.d.ts +182 -0
- package/dist/mjs/src/data-structures/linked-list/singly-linked-list.js +182 -0
- package/dist/mjs/src/data-structures/linked-list/skip-linked-list.d.ts +64 -0
- package/dist/mjs/src/data-structures/linked-list/skip-linked-list.js +64 -0
- package/dist/mjs/src/data-structures/queue/deque.d.ts +113 -3
- package/dist/mjs/src/data-structures/queue/deque.js +113 -3
- package/dist/mjs/src/data-structures/queue/queue.d.ts +87 -0
- package/dist/mjs/src/data-structures/queue/queue.js +87 -0
- package/dist/mjs/src/data-structures/stack/stack.d.ts +42 -0
- package/dist/mjs/src/data-structures/stack/stack.js +42 -0
- package/dist/mjs/src/data-structures/trie/trie.d.ts +76 -0
- package/dist/mjs/src/data-structures/trie/trie.js +76 -1
- package/dist/umd/data-structure-typed.min.js +1 -1
- package/dist/umd/data-structure-typed.min.js.map +1 -1
- package/package.json +1 -1
- package/src/data-structures/binary-tree/avl-tree.ts +97 -23
- package/src/data-structures/binary-tree/binary-tree.ts +419 -204
- package/src/data-structures/binary-tree/bst.ts +130 -68
- package/src/data-structures/binary-tree/rb-tree.ts +106 -19
- package/src/data-structures/binary-tree/tree-multimap.ts +88 -44
- package/src/data-structures/graph/abstract-graph.ts +133 -7
- package/src/data-structures/graph/directed-graph.ts +145 -1
- package/src/data-structures/graph/undirected-graph.ts +72 -0
- package/src/data-structures/heap/heap.ts +201 -12
- package/src/data-structures/linked-list/doubly-linked-list.ts +232 -0
- package/src/data-structures/linked-list/singly-linked-list.ts +208 -0
- package/src/data-structures/linked-list/skip-linked-list.ts +74 -0
- package/src/data-structures/queue/deque.ts +127 -3
- package/src/data-structures/queue/queue.ts +99 -0
- package/src/data-structures/stack/stack.ts +48 -0
- package/src/data-structures/trie/trie.ts +87 -4
- package/test/integration/index.html +24 -2
- package/test/unit/data-structures/binary-tree/binary-tree.test.ts +19 -2
- package/test/unit/data-structures/linked-list/doubly-linked-list.test.ts +0 -1
- package/test/unit/data-structures/linked-list/singly-linked-list.test.ts +0 -1
|
@@ -28,13 +28,13 @@
|
|
|
28
28
|
|
|
29
29
|
|
|
30
30
|
const queue = new Queue();
|
|
31
|
-
for (let i = 0; i <
|
|
31
|
+
for (let i = 0; i < 100000; i++) {
|
|
32
32
|
queue.enqueue(i);
|
|
33
33
|
}
|
|
34
34
|
let last = 0;
|
|
35
35
|
const startTime = performance.now();
|
|
36
36
|
|
|
37
|
-
for (let i = 0; i <
|
|
37
|
+
for (let i = 0; i < 100000; i++) {
|
|
38
38
|
last = queue.dequeue();
|
|
39
39
|
}
|
|
40
40
|
|
|
@@ -44,6 +44,28 @@
|
|
|
44
44
|
console.error(e);
|
|
45
45
|
}
|
|
46
46
|
|
|
47
|
+
try {
|
|
48
|
+
const {BinaryTree} = dataStructureTyped;
|
|
49
|
+
const tree = new BinaryTree();
|
|
50
|
+
tree.add(3);
|
|
51
|
+
tree.add(12);
|
|
52
|
+
tree.addMany([1, 6, 9, 8,5,2,3,4,7])
|
|
53
|
+
tree.add(10);
|
|
54
|
+
console.log(tree.isPerfectlyBalanced());
|
|
55
|
+
tree.print();
|
|
56
|
+
|
|
57
|
+
const node3 = tree.getNode(3);
|
|
58
|
+
if (node3) node3.right = tree.createNode(1);
|
|
59
|
+
console.log(tree.isPerfectlyBalanced());
|
|
60
|
+
tree.print();
|
|
61
|
+
|
|
62
|
+
tree.clear();
|
|
63
|
+
tree.addMany([1, null, 2, null, 3, null, 4, null, 5, null, 6, null]);
|
|
64
|
+
console.log(tree.isPerfectlyBalanced());
|
|
65
|
+
tree.print();
|
|
66
|
+
} catch (e) {
|
|
67
|
+
console.error(e);
|
|
68
|
+
}
|
|
47
69
|
</script>
|
|
48
70
|
|
|
49
71
|
</body>
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import {BinaryTree, BinaryTreeNode, IterationType} from '../../../../src';
|
|
2
|
+
import {getRandomIntArray} from "../../../utils";
|
|
2
3
|
// import {isDebugTest} from '../../../config';
|
|
3
4
|
|
|
4
5
|
// const isDebug = isDebugTest;
|
|
@@ -112,6 +113,24 @@ describe('BinaryTree', () => {
|
|
|
112
113
|
expect(tree.has('3', node => node.value?.toString())).toBe(true);
|
|
113
114
|
});
|
|
114
115
|
|
|
116
|
+
|
|
117
|
+
it('should be a balance tree after malicious manipulation', () => {
|
|
118
|
+
tree.add(3);
|
|
119
|
+
tree.add(12);
|
|
120
|
+
tree.addMany(getRandomIntArray(100, 1, 100))
|
|
121
|
+
tree.add(10);
|
|
122
|
+
|
|
123
|
+
expect(tree.isPerfectlyBalanced()).toBe(true);
|
|
124
|
+
const node3 = tree.getNode(3);
|
|
125
|
+
|
|
126
|
+
if (node3) node3.right = tree.createNode(1);
|
|
127
|
+
expect(tree.isPerfectlyBalanced()).toBe(false);
|
|
128
|
+
|
|
129
|
+
tree.clear();
|
|
130
|
+
tree.addMany([1, null, 2, null, 3, null, 4, null, 5, null, 6, null]);
|
|
131
|
+
expect(tree.isPerfectlyBalanced()).toBe(false);
|
|
132
|
+
});
|
|
133
|
+
|
|
115
134
|
it('should getDepth return correct depth', () => {
|
|
116
135
|
tree.add(1);
|
|
117
136
|
expect(tree.getDepth(1)).toBe(0);
|
|
@@ -480,10 +499,8 @@ describe('BinaryTree', () => {
|
|
|
480
499
|
tree.add(7, 'C');
|
|
481
500
|
|
|
482
501
|
tree.iterationType = IterationType.ITERATIVE;
|
|
483
|
-
// @ts-ignore
|
|
484
502
|
expect([...tree]).toEqual([3, 5, 7]);
|
|
485
503
|
tree.iterationType = IterationType.RECURSIVE;
|
|
486
|
-
// @ts-ignore
|
|
487
504
|
expect([...tree]).toEqual([3, 5, 7]);
|
|
488
505
|
tree.iterationType = IterationType.ITERATIVE;
|
|
489
506
|
|