@gabrielrufino/cube 1.0.1
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/.github/workflows/cd.yml +26 -0
- package/.github/workflows/ci.yml +23 -0
- package/LICENSE +24 -0
- package/README.md +1695 -0
- package/build/Algorithms/index.d.ts +3 -0
- package/build/Algorithms/index.js +24 -0
- package/build/Array/IArray.d.ts +9 -0
- package/build/Array/IArray.js +2 -0
- package/build/Array/index.d.ts +12 -0
- package/build/Array/index.js +79 -0
- package/build/BinarySearchTree/BinarySearchTreeNode.d.ts +7 -0
- package/build/BinarySearchTree/BinarySearchTreeNode.js +22 -0
- package/build/BinarySearchTree/IBinarySearchNodeOptions.d.ts +5 -0
- package/build/BinarySearchTree/IBinarySearchNodeOptions.js +2 -0
- package/build/BinarySearchTree/IBinarySearchTree.d.ts +14 -0
- package/build/BinarySearchTree/IBinarySearchTree.js +2 -0
- package/build/BinarySearchTree/IBinarySearchTreeData.d.ts +7 -0
- package/build/BinarySearchTree/IBinarySearchTreeData.js +2 -0
- package/build/BinarySearchTree/index.d.ts +24 -0
- package/build/BinarySearchTree/index.js +199 -0
- package/build/DataStructure/index.d.ts +6 -0
- package/build/DataStructure/index.js +32 -0
- package/build/Deck/IDeck.d.ts +9 -0
- package/build/Deck/IDeck.js +2 -0
- package/build/Deck/index.d.ts +12 -0
- package/build/Deck/index.js +76 -0
- package/build/Dictionary/IDictionary.d.ts +16 -0
- package/build/Dictionary/IDictionary.js +2 -0
- package/build/Dictionary/IDictionaryData.d.ts +4 -0
- package/build/Dictionary/IDictionaryData.js +2 -0
- package/build/Dictionary/index.d.ts +21 -0
- package/build/Dictionary/index.js +110 -0
- package/build/DoublyLinkedList/IDoublyLinkedList.d.ts +16 -0
- package/build/DoublyLinkedList/IDoublyLinkedList.js +2 -0
- package/build/DoublyLinkedList/Node.d.ts +6 -0
- package/build/DoublyLinkedList/Node.js +11 -0
- package/build/DoublyLinkedList/index.d.ts +32 -0
- package/build/DoublyLinkedList/index.js +221 -0
- package/build/Graph/GraphNodeNotFoundError.d.ts +3 -0
- package/build/Graph/GraphNodeNotFoundError.js +27 -0
- package/build/Graph/GraphSearchNodeStates.d.ts +6 -0
- package/build/Graph/GraphSearchNodeStates.js +10 -0
- package/build/Graph/IGraph.d.ts +16 -0
- package/build/Graph/IGraph.js +2 -0
- package/build/Graph/IGraphOptions.d.ts +7 -0
- package/build/Graph/IGraphOptions.js +2 -0
- package/build/Graph/index.d.ts +20 -0
- package/build/Graph/index.js +187 -0
- package/build/HashTable/IHashTable.d.ts +9 -0
- package/build/HashTable/IHashTable.js +2 -0
- package/build/HashTable/IHashTableData.d.ts +4 -0
- package/build/HashTable/IHashTableData.js +2 -0
- package/build/HashTable/IHashTableInputs.d.ts +4 -0
- package/build/HashTable/IHashTableInputs.js +2 -0
- package/build/HashTable/IHashTableOptions.d.ts +4 -0
- package/build/HashTable/IHashTableOptions.js +2 -0
- package/build/HashTable/index.d.ts +16 -0
- package/build/HashTable/index.js +83 -0
- package/build/HashTableLinearProbing/HashTableLinearProbingElement.d.ts +6 -0
- package/build/HashTableLinearProbing/HashTableLinearProbingElement.js +19 -0
- package/build/HashTableLinearProbing/IHashTableLinearProbing.d.ts +9 -0
- package/build/HashTableLinearProbing/IHashTableLinearProbing.js +2 -0
- package/build/HashTableLinearProbing/IHashTableLinearProbingData.d.ts +5 -0
- package/build/HashTableLinearProbing/IHashTableLinearProbingData.js +2 -0
- package/build/HashTableLinearProbing/IHashTableLinearProbingInputs.d.ts +4 -0
- package/build/HashTableLinearProbing/IHashTableLinearProbingInputs.js +2 -0
- package/build/HashTableLinearProbing/IHashTableLinearProbingOptions.d.ts +4 -0
- package/build/HashTableLinearProbing/IHashTableLinearProbingOptions.js +2 -0
- package/build/HashTableLinearProbing/index.d.ts +20 -0
- package/build/HashTableLinearProbing/index.js +120 -0
- package/build/HashTableSeparateChaining/HashTableSeparateChainingElement.d.ts +6 -0
- package/build/HashTableSeparateChaining/HashTableSeparateChainingElement.js +21 -0
- package/build/HashTableSeparateChaining/IHashTableSeparateChaining.d.ts +10 -0
- package/build/HashTableSeparateChaining/IHashTableSeparateChaining.js +2 -0
- package/build/HashTableSeparateChaining/IHashTableSeparateChainingData.d.ts +5 -0
- package/build/HashTableSeparateChaining/IHashTableSeparateChainingData.js +2 -0
- package/build/HashTableSeparateChaining/IHashTableSeparateChainingInputs.d.ts +4 -0
- package/build/HashTableSeparateChaining/IHashTableSeparateChainingInputs.js +2 -0
- package/build/HashTableSeparateChaining/IHashTableSeparateChainingOptions.d.ts +4 -0
- package/build/HashTableSeparateChaining/IHashTableSeparateChainingOptions.js +2 -0
- package/build/HashTableSeparateChaining/index.d.ts +19 -0
- package/build/HashTableSeparateChaining/index.js +104 -0
- package/build/LinkedList/ILinkedList.d.ts +13 -0
- package/build/LinkedList/ILinkedList.js +2 -0
- package/build/LinkedList/ILinkedListItem.d.ts +5 -0
- package/build/LinkedList/ILinkedListItem.js +2 -0
- package/build/LinkedList/Node.d.ts +5 -0
- package/build/LinkedList/Node.js +10 -0
- package/build/LinkedList/index.d.ts +24 -0
- package/build/LinkedList/index.js +169 -0
- package/build/List/index.d.ts +1 -0
- package/build/List/index.js +8 -0
- package/build/MaxHeap/IMaxHeap.d.ts +9 -0
- package/build/MaxHeap/IMaxHeap.js +2 -0
- package/build/MaxHeap/IMaxHeapOptions.d.ts +5 -0
- package/build/MaxHeap/IMaxHeapOptions.js +2 -0
- package/build/MaxHeap/index.d.ts +19 -0
- package/build/MaxHeap/index.js +102 -0
- package/build/MinHeap/IMinHeap.d.ts +9 -0
- package/build/MinHeap/IMinHeap.js +2 -0
- package/build/MinHeap/IMinHeapOptions.d.ts +5 -0
- package/build/MinHeap/IMinHeapOptions.js +2 -0
- package/build/MinHeap/index.d.ts +19 -0
- package/build/MinHeap/index.js +102 -0
- package/build/Queue/IQueue.d.ts +8 -0
- package/build/Queue/IQueue.js +2 -0
- package/build/Queue/index.d.ts +11 -0
- package/build/Queue/index.js +74 -0
- package/build/Set/ISet.d.ts +15 -0
- package/build/Set/ISet.js +2 -0
- package/build/Set/index.d.ts +21 -0
- package/build/Set/index.js +132 -0
- package/build/Stack/IStack.d.ts +8 -0
- package/build/Stack/IStack.js +2 -0
- package/build/Stack/index.d.ts +11 -0
- package/build/Stack/index.js +64 -0
- package/build/index.d.ts +17 -0
- package/build/index.js +40 -0
- package/coverage/clover.xml +706 -0
- package/coverage/coverage-final.json +19 -0
- package/coverage/lcov-report/base.css +224 -0
- package/coverage/lcov-report/block-navigation.js +87 -0
- package/coverage/lcov-report/favicon.png +0 -0
- package/coverage/lcov-report/index.html +327 -0
- package/coverage/lcov-report/prettify.css +1 -0
- package/coverage/lcov-report/prettify.js +2 -0
- package/coverage/lcov-report/sort-arrow-sprite.png +0 -0
- package/coverage/lcov-report/sorter.js +196 -0
- package/coverage/lcov-report/src/Algorithms/index.html +117 -0
- package/coverage/lcov-report/src/Algorithms/index.ts.html +149 -0
- package/coverage/lcov-report/src/Array/index.html +117 -0
- package/coverage/lcov-report/src/Array/index.ts.html +290 -0
- package/coverage/lcov-report/src/DataStructure/index.html +117 -0
- package/coverage/lcov-report/src/DataStructure/index.ts.html +131 -0
- package/coverage/lcov-report/src/Deck/index.html +117 -0
- package/coverage/lcov-report/src/Deck/index.ts.html +239 -0
- package/coverage/lcov-report/src/Dictionary/index.html +117 -0
- package/coverage/lcov-report/src/Dictionary/index.ts.html +350 -0
- package/coverage/lcov-report/src/DoublyLinkedList/Node.ts.html +113 -0
- package/coverage/lcov-report/src/DoublyLinkedList/index.html +132 -0
- package/coverage/lcov-report/src/DoublyLinkedList/index.ts.html +836 -0
- package/coverage/lcov-report/src/HashTable/index.html +117 -0
- package/coverage/lcov-report/src/HashTable/index.ts.html +320 -0
- package/coverage/lcov-report/src/HashTableLinearProbing/index.html +117 -0
- package/coverage/lcov-report/src/HashTableLinearProbing/index.ts.html +95 -0
- package/coverage/lcov-report/src/HashTableSeparateChaining/HashTableSeparateChainingElement.ts.html +149 -0
- package/coverage/lcov-report/src/HashTableSeparateChaining/index.html +132 -0
- package/coverage/lcov-report/src/HashTableSeparateChaining/index.ts.html +398 -0
- package/coverage/lcov-report/src/LinkedList/Node.ts.html +110 -0
- package/coverage/lcov-report/src/LinkedList/index.html +132 -0
- package/coverage/lcov-report/src/LinkedList/index.ts.html +641 -0
- package/coverage/lcov-report/src/List/index.html +117 -0
- package/coverage/lcov-report/src/List/index.ts.html +89 -0
- package/coverage/lcov-report/src/Queue/index.html +117 -0
- package/coverage/lcov-report/src/Queue/index.ts.html +218 -0
- package/coverage/lcov-report/src/Set/index.html +117 -0
- package/coverage/lcov-report/src/Set/index.ts.html +488 -0
- package/coverage/lcov-report/src/Stack/index.html +117 -0
- package/coverage/lcov-report/src/Stack/index.ts.html +215 -0
- package/coverage/lcov-report/src/index.html +117 -0
- package/coverage/lcov-report/src/index.ts.html +125 -0
- package/coverage/lcov.info +1346 -0
- package/package.json +42 -0
- package/src/Algorithms/index.spec.ts +15 -0
- package/src/Algorithms/index.ts +21 -0
- package/src/Array/IArray.ts +10 -0
- package/src/Array/index.spec.ts +151 -0
- package/src/Array/index.ts +68 -0
- package/src/BinarySearchTree/BinarySearchTreeNode.spec.ts +29 -0
- package/src/BinarySearchTree/BinarySearchTreeNode.ts +23 -0
- package/src/BinarySearchTree/IBinarySearchNodeOptions.ts +6 -0
- package/src/BinarySearchTree/IBinarySearchTree.ts +16 -0
- package/src/BinarySearchTree/IBinarySearchTreeData.ts +9 -0
- package/src/BinarySearchTree/index.spec.ts +486 -0
- package/src/BinarySearchTree/index.ts +198 -0
- package/src/DataStructure/index.spec.ts +25 -0
- package/src/DataStructure/index.ts +15 -0
- package/src/Deck/IDeck.ts +10 -0
- package/src/Deck/index.spec.ts +131 -0
- package/src/Deck/index.ts +51 -0
- package/src/Dictionary/IDictionary.ts +18 -0
- package/src/Dictionary/IDictionaryData.ts +5 -0
- package/src/Dictionary/index.spec.ts +310 -0
- package/src/Dictionary/index.ts +88 -0
- package/src/DoublyLinkedList/IDoublyLinkedList.ts +18 -0
- package/src/DoublyLinkedList/Node.ts +9 -0
- package/src/DoublyLinkedList/index.spec.ts +478 -0
- package/src/DoublyLinkedList/index.ts +250 -0
- package/src/Graph/GraphNodeNotFoundError.ts +7 -0
- package/src/Graph/GraphSearchNodeStates.ts +8 -0
- package/src/Graph/IGraph.ts +15 -0
- package/src/Graph/IGraphOptions.ts +6 -0
- package/src/Graph/index.spec.ts +318 -0
- package/src/Graph/index.ts +170 -0
- package/src/HashTable/IHashTable.ts +11 -0
- package/src/HashTable/IHashTableData.ts +5 -0
- package/src/HashTable/IHashTableInputs.ts +5 -0
- package/src/HashTable/IHashTableOptions.ts +5 -0
- package/src/HashTable/index.spec.ts +136 -0
- package/src/HashTable/index.ts +78 -0
- package/src/HashTableLinearProbing/HashTableLinearProbingElement.spec.ts +28 -0
- package/src/HashTableLinearProbing/HashTableLinearProbingElement.ts +18 -0
- package/src/HashTableLinearProbing/IHashTableLinearProbing.ts +11 -0
- package/src/HashTableLinearProbing/IHashTableLinearProbingData.ts +7 -0
- package/src/HashTableLinearProbing/IHashTableLinearProbingInputs.ts +5 -0
- package/src/HashTableLinearProbing/IHashTableLinearProbingOptions.ts +5 -0
- package/src/HashTableLinearProbing/index.spec.ts +266 -0
- package/src/HashTableLinearProbing/index.ts +128 -0
- package/src/HashTableSeparateChaining/HashTableSeparateChainingElement.ts +21 -0
- package/src/HashTableSeparateChaining/IHashTableSeparateChaining.ts +12 -0
- package/src/HashTableSeparateChaining/IHashTableSeparateChainingData.ts +7 -0
- package/src/HashTableSeparateChaining/IHashTableSeparateChainingInputs.ts +5 -0
- package/src/HashTableSeparateChaining/IHashTableSeparateChainingOptions.ts +5 -0
- package/src/HashTableSeparateChaining/index.spec.ts +173 -0
- package/src/HashTableSeparateChaining/index.ts +104 -0
- package/src/LinkedList/ILinkedList.ts +15 -0
- package/src/LinkedList/ILinkedListItem.ts +6 -0
- package/src/LinkedList/Node.ts +8 -0
- package/src/LinkedList/index.spec.ts +355 -0
- package/src/LinkedList/index.ts +185 -0
- package/src/List/index.ts +1 -0
- package/src/MaxHeap/IMaxHeap.ts +10 -0
- package/src/MaxHeap/IMaxHeapOptions.ts +6 -0
- package/src/MaxHeap/index.spec.ts +161 -0
- package/src/MaxHeap/index.ts +91 -0
- package/src/MinHeap/IMinHeap.ts +10 -0
- package/src/MinHeap/IMinHeapOptions.ts +6 -0
- package/src/MinHeap/index.spec.ts +161 -0
- package/src/MinHeap/index.ts +91 -0
- package/src/Queue/IQueue.ts +9 -0
- package/src/Queue/index.spec.ts +92 -0
- package/src/Queue/index.ts +44 -0
- package/src/Set/ISet.ts +17 -0
- package/src/Set/index.spec.ts +246 -0
- package/src/Set/index.ts +134 -0
- package/src/Stack/IStack.ts +9 -0
- package/src/Stack/index.spec.ts +108 -0
- package/src/Stack/index.ts +43 -0
- package/src/index.ts +17 -0
- package/tsconfig.json +104 -0
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import DataStructure from '../DataStructure';
|
|
2
|
+
import IQueue from './IQueue';
|
|
3
|
+
export default class Queue<T = number> extends DataStructure<T> implements IQueue<T> {
|
|
4
|
+
constructor(...inputs: T[]);
|
|
5
|
+
get isEmpty(): boolean;
|
|
6
|
+
enqueue(element: T): T;
|
|
7
|
+
dequeue(): T | undefined;
|
|
8
|
+
peek(): T | undefined;
|
|
9
|
+
clear(): void;
|
|
10
|
+
private [Symbol.toPrimitive];
|
|
11
|
+
}
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __extends = (this && this.__extends) || (function () {
|
|
3
|
+
var extendStatics = function (d, b) {
|
|
4
|
+
extendStatics = Object.setPrototypeOf ||
|
|
5
|
+
({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
|
|
6
|
+
function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
|
|
7
|
+
return extendStatics(d, b);
|
|
8
|
+
};
|
|
9
|
+
return function (d, b) {
|
|
10
|
+
if (typeof b !== "function" && b !== null)
|
|
11
|
+
throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
|
|
12
|
+
extendStatics(d, b);
|
|
13
|
+
function __() { this.constructor = d; }
|
|
14
|
+
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
|
|
15
|
+
};
|
|
16
|
+
})();
|
|
17
|
+
var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
|
|
18
|
+
if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
|
|
19
|
+
if (ar || !(i in from)) {
|
|
20
|
+
if (!ar) ar = Array.prototype.slice.call(from, 0, i);
|
|
21
|
+
ar[i] = from[i];
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
return to.concat(ar || Array.prototype.slice.call(from));
|
|
25
|
+
};
|
|
26
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
27
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
28
|
+
};
|
|
29
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
30
|
+
var DataStructure_1 = __importDefault(require("../DataStructure"));
|
|
31
|
+
var Queue = /** @class */ (function (_super) {
|
|
32
|
+
__extends(Queue, _super);
|
|
33
|
+
function Queue() {
|
|
34
|
+
var inputs = [];
|
|
35
|
+
for (var _i = 0; _i < arguments.length; _i++) {
|
|
36
|
+
inputs[_i] = arguments[_i];
|
|
37
|
+
}
|
|
38
|
+
return _super.call(this, inputs) || this;
|
|
39
|
+
}
|
|
40
|
+
Object.defineProperty(Queue.prototype, "isEmpty", {
|
|
41
|
+
get: function () {
|
|
42
|
+
return this.size === 0;
|
|
43
|
+
},
|
|
44
|
+
enumerable: false,
|
|
45
|
+
configurable: true
|
|
46
|
+
});
|
|
47
|
+
Queue.prototype.enqueue = function (element) {
|
|
48
|
+
this._data = __spreadArray(__spreadArray([], this.data, true), [element], false);
|
|
49
|
+
return element;
|
|
50
|
+
};
|
|
51
|
+
Queue.prototype.dequeue = function () {
|
|
52
|
+
var _a = this.data, element = _a[0], rest = _a.slice(1);
|
|
53
|
+
this._data = rest;
|
|
54
|
+
return element;
|
|
55
|
+
};
|
|
56
|
+
Queue.prototype.peek = function () {
|
|
57
|
+
var element = this.data[0];
|
|
58
|
+
return element;
|
|
59
|
+
};
|
|
60
|
+
Queue.prototype.clear = function () {
|
|
61
|
+
this._data = [];
|
|
62
|
+
};
|
|
63
|
+
Queue.prototype[Symbol.toPrimitive] = function (type) {
|
|
64
|
+
if (type === 'string') {
|
|
65
|
+
return "[Front] ".concat(this.data.join(', '));
|
|
66
|
+
}
|
|
67
|
+
if (type === 'number') {
|
|
68
|
+
return this.size;
|
|
69
|
+
}
|
|
70
|
+
return null;
|
|
71
|
+
};
|
|
72
|
+
return Queue;
|
|
73
|
+
}(DataStructure_1.default));
|
|
74
|
+
exports.default = Queue;
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import Set from './';
|
|
2
|
+
interface ISet<T> {
|
|
3
|
+
get data(): T[];
|
|
4
|
+
get size(): number;
|
|
5
|
+
has(_elemet: T): boolean;
|
|
6
|
+
add(_element: T): T | null;
|
|
7
|
+
delete(_element: T): T | null;
|
|
8
|
+
clear(_element: T): T[];
|
|
9
|
+
union(_set: Set<T>): Set<T>;
|
|
10
|
+
intersection(_set: Set<T>): Set<T>;
|
|
11
|
+
difference(_set: Set<T>): Set<T>;
|
|
12
|
+
isSubsetOf(_set: Set<T>): boolean;
|
|
13
|
+
contains(_set: Set<T>): boolean;
|
|
14
|
+
}
|
|
15
|
+
export default ISet;
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import ISet from './ISet';
|
|
2
|
+
export default class Set<T = number> implements ISet<T> {
|
|
3
|
+
private _data;
|
|
4
|
+
constructor(...inputs: T[]);
|
|
5
|
+
get data(): T[];
|
|
6
|
+
get size(): number;
|
|
7
|
+
has(element: T): boolean;
|
|
8
|
+
add(element: T): T | null;
|
|
9
|
+
delete(element: T): T | null;
|
|
10
|
+
clear(): T[];
|
|
11
|
+
union(set: Set<T>): Set<T>;
|
|
12
|
+
intersection(set: Set<T>): Set<T>;
|
|
13
|
+
difference(set: Set<T>): Set<T>;
|
|
14
|
+
isSubsetOf(set: Set<T>): boolean;
|
|
15
|
+
contains(set: Set<T>): boolean;
|
|
16
|
+
static union<T>(set1: Set<T>, set2: Set<T>): Set<T>;
|
|
17
|
+
static intersection<T>(set1: Set<T>, set2: Set<T>): Set<T>;
|
|
18
|
+
static difference<T>(set1: Set<T>, set2: Set<T>): Set<T>;
|
|
19
|
+
static isSubset<T>(set1: Set<T>, set2: Set<T>): boolean;
|
|
20
|
+
private [Symbol.toPrimitive];
|
|
21
|
+
}
|
|
@@ -0,0 +1,132 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
|
|
3
|
+
if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
|
|
4
|
+
if (ar || !(i in from)) {
|
|
5
|
+
if (!ar) ar = Array.prototype.slice.call(from, 0, i);
|
|
6
|
+
ar[i] = from[i];
|
|
7
|
+
}
|
|
8
|
+
}
|
|
9
|
+
return to.concat(ar || Array.prototype.slice.call(from));
|
|
10
|
+
};
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
var Set = /** @class */ (function () {
|
|
13
|
+
function Set() {
|
|
14
|
+
var inputs = [];
|
|
15
|
+
for (var _i = 0; _i < arguments.length; _i++) {
|
|
16
|
+
inputs[_i] = arguments[_i];
|
|
17
|
+
}
|
|
18
|
+
this._data = new Map();
|
|
19
|
+
for (var _a = 0, inputs_1 = inputs; _a < inputs_1.length; _a++) {
|
|
20
|
+
var input = inputs_1[_a];
|
|
21
|
+
this.add(input);
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
Object.defineProperty(Set.prototype, "data", {
|
|
25
|
+
get: function () {
|
|
26
|
+
return Array.from(this._data.values());
|
|
27
|
+
},
|
|
28
|
+
enumerable: false,
|
|
29
|
+
configurable: true
|
|
30
|
+
});
|
|
31
|
+
Object.defineProperty(Set.prototype, "size", {
|
|
32
|
+
get: function () {
|
|
33
|
+
return this._data.size;
|
|
34
|
+
},
|
|
35
|
+
enumerable: false,
|
|
36
|
+
configurable: true
|
|
37
|
+
});
|
|
38
|
+
Set.prototype.has = function (element) {
|
|
39
|
+
return this._data.has(element);
|
|
40
|
+
};
|
|
41
|
+
Set.prototype.add = function (element) {
|
|
42
|
+
if (!this.has(element)) {
|
|
43
|
+
this._data.set(element, element);
|
|
44
|
+
return element;
|
|
45
|
+
}
|
|
46
|
+
return null;
|
|
47
|
+
};
|
|
48
|
+
Set.prototype.delete = function (element) {
|
|
49
|
+
if (this.has(element)) {
|
|
50
|
+
this._data.delete(element);
|
|
51
|
+
return element;
|
|
52
|
+
}
|
|
53
|
+
return null;
|
|
54
|
+
};
|
|
55
|
+
Set.prototype.clear = function () {
|
|
56
|
+
var elements = __spreadArray([], this.data, true);
|
|
57
|
+
this._data.clear();
|
|
58
|
+
return elements;
|
|
59
|
+
};
|
|
60
|
+
Set.prototype.union = function (set) {
|
|
61
|
+
return Set.union(this, set);
|
|
62
|
+
};
|
|
63
|
+
Set.prototype.intersection = function (set) {
|
|
64
|
+
return Set.intersection(this, set);
|
|
65
|
+
};
|
|
66
|
+
Set.prototype.difference = function (set) {
|
|
67
|
+
return Set.difference(this, set);
|
|
68
|
+
};
|
|
69
|
+
Set.prototype.isSubsetOf = function (set) {
|
|
70
|
+
return Set.isSubset(this, set);
|
|
71
|
+
};
|
|
72
|
+
Set.prototype.contains = function (set) {
|
|
73
|
+
return Set.isSubset(set, this);
|
|
74
|
+
};
|
|
75
|
+
Set.union = function (set1, set2) {
|
|
76
|
+
var union = new Set();
|
|
77
|
+
for (var _i = 0, _a = __spreadArray(__spreadArray([], set1.data, true), set2.data, true); _i < _a.length; _i++) {
|
|
78
|
+
var element = _a[_i];
|
|
79
|
+
union.add(element);
|
|
80
|
+
}
|
|
81
|
+
return union;
|
|
82
|
+
};
|
|
83
|
+
Set.intersection = function (set1, set2) {
|
|
84
|
+
var biggestSet;
|
|
85
|
+
var smallestSet;
|
|
86
|
+
if (set1.size >= set2.size) {
|
|
87
|
+
biggestSet = set1;
|
|
88
|
+
smallestSet = set2;
|
|
89
|
+
}
|
|
90
|
+
else {
|
|
91
|
+
biggestSet = set2;
|
|
92
|
+
smallestSet = set1;
|
|
93
|
+
}
|
|
94
|
+
var intersection = new Set();
|
|
95
|
+
for (var _i = 0, _a = smallestSet.data; _i < _a.length; _i++) {
|
|
96
|
+
var element = _a[_i];
|
|
97
|
+
if (biggestSet.has(element)) {
|
|
98
|
+
intersection.add(element);
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
return intersection;
|
|
102
|
+
};
|
|
103
|
+
Set.difference = function (set1, set2) {
|
|
104
|
+
var difference = new Set();
|
|
105
|
+
for (var _i = 0, _a = set1.data; _i < _a.length; _i++) {
|
|
106
|
+
var element = _a[_i];
|
|
107
|
+
if (!set2.has(element)) {
|
|
108
|
+
difference.add(element);
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
return difference;
|
|
112
|
+
};
|
|
113
|
+
Set.isSubset = function (set1, set2) {
|
|
114
|
+
if (set1.size > set2.size) {
|
|
115
|
+
return false;
|
|
116
|
+
}
|
|
117
|
+
return set1
|
|
118
|
+
.data
|
|
119
|
+
.every(function (element) { return set2.has(element); });
|
|
120
|
+
};
|
|
121
|
+
Set.prototype[Symbol.toPrimitive] = function (type) {
|
|
122
|
+
if (type === 'string') {
|
|
123
|
+
return "{ ".concat(this.data.join(', '), " }");
|
|
124
|
+
}
|
|
125
|
+
if (type === 'number') {
|
|
126
|
+
return this.size;
|
|
127
|
+
}
|
|
128
|
+
return null;
|
|
129
|
+
};
|
|
130
|
+
return Set;
|
|
131
|
+
}());
|
|
132
|
+
exports.default = Set;
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import DataStructure from '../DataStructure';
|
|
2
|
+
import IStack from './IStack';
|
|
3
|
+
export default class Stack<T = number> extends DataStructure<T> implements IStack<T> {
|
|
4
|
+
constructor(...inputs: T[]);
|
|
5
|
+
push(element: T): T;
|
|
6
|
+
pop(): T | undefined;
|
|
7
|
+
peek(): T | undefined;
|
|
8
|
+
clear(): void;
|
|
9
|
+
get isEmpty(): boolean;
|
|
10
|
+
private [Symbol.toPrimitive];
|
|
11
|
+
}
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __extends = (this && this.__extends) || (function () {
|
|
3
|
+
var extendStatics = function (d, b) {
|
|
4
|
+
extendStatics = Object.setPrototypeOf ||
|
|
5
|
+
({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
|
|
6
|
+
function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
|
|
7
|
+
return extendStatics(d, b);
|
|
8
|
+
};
|
|
9
|
+
return function (d, b) {
|
|
10
|
+
if (typeof b !== "function" && b !== null)
|
|
11
|
+
throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
|
|
12
|
+
extendStatics(d, b);
|
|
13
|
+
function __() { this.constructor = d; }
|
|
14
|
+
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
|
|
15
|
+
};
|
|
16
|
+
})();
|
|
17
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
18
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
19
|
+
};
|
|
20
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
21
|
+
var DataStructure_1 = __importDefault(require("../DataStructure"));
|
|
22
|
+
var Stack = /** @class */ (function (_super) {
|
|
23
|
+
__extends(Stack, _super);
|
|
24
|
+
function Stack() {
|
|
25
|
+
var inputs = [];
|
|
26
|
+
for (var _i = 0; _i < arguments.length; _i++) {
|
|
27
|
+
inputs[_i] = arguments[_i];
|
|
28
|
+
}
|
|
29
|
+
return _super.call(this, inputs) || this;
|
|
30
|
+
}
|
|
31
|
+
Stack.prototype.push = function (element) {
|
|
32
|
+
this._data.push(element);
|
|
33
|
+
return element;
|
|
34
|
+
};
|
|
35
|
+
Stack.prototype.pop = function () {
|
|
36
|
+
var element = this._data.pop();
|
|
37
|
+
return element;
|
|
38
|
+
};
|
|
39
|
+
Stack.prototype.peek = function () {
|
|
40
|
+
var topPosition = this.data.length - 1;
|
|
41
|
+
return this.data[topPosition];
|
|
42
|
+
};
|
|
43
|
+
Stack.prototype.clear = function () {
|
|
44
|
+
this._data = [];
|
|
45
|
+
};
|
|
46
|
+
Object.defineProperty(Stack.prototype, "isEmpty", {
|
|
47
|
+
get: function () {
|
|
48
|
+
return this.data.length === 0;
|
|
49
|
+
},
|
|
50
|
+
enumerable: false,
|
|
51
|
+
configurable: true
|
|
52
|
+
});
|
|
53
|
+
Stack.prototype[Symbol.toPrimitive] = function (type) {
|
|
54
|
+
if (type === 'string') {
|
|
55
|
+
return "".concat(this.data.join(', '), " [Top]");
|
|
56
|
+
}
|
|
57
|
+
if (type === 'number') {
|
|
58
|
+
return this.size;
|
|
59
|
+
}
|
|
60
|
+
return null;
|
|
61
|
+
};
|
|
62
|
+
return Stack;
|
|
63
|
+
}(DataStructure_1.default));
|
|
64
|
+
exports.default = Stack;
|
package/build/index.d.ts
ADDED
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
export { default as Algorithms } from './Algorithms';
|
|
2
|
+
export { default as Array } from './Array';
|
|
3
|
+
export { default as BinarySearchTree } from './BinarySearchTree';
|
|
4
|
+
export { default as Deck } from './Deck';
|
|
5
|
+
export { default as Dictionary } from './Dictionary';
|
|
6
|
+
export { default as DoublyLinkedList } from './DoublyLinkedList';
|
|
7
|
+
export { default as Graph } from './Graph';
|
|
8
|
+
export { default as HashTable } from './HashTable';
|
|
9
|
+
export { default as HashTableLinearProbing } from './HashTableLinearProbing';
|
|
10
|
+
export { default as HashTableSeparateChaining } from './HashTableSeparateChaining';
|
|
11
|
+
export { default as LinkedList } from './LinkedList';
|
|
12
|
+
export { default as List } from './List';
|
|
13
|
+
export { default as MaxHeap } from './MaxHeap';
|
|
14
|
+
export { default as MinHeap } from './MinHeap';
|
|
15
|
+
export { default as Queue } from './Queue';
|
|
16
|
+
export { default as Set } from './Set';
|
|
17
|
+
export { default as Stack } from './Stack';
|
package/build/index.js
ADDED
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.Stack = exports.Set = exports.Queue = exports.MinHeap = exports.MaxHeap = exports.List = exports.LinkedList = exports.HashTableSeparateChaining = exports.HashTableLinearProbing = exports.HashTable = exports.Graph = exports.DoublyLinkedList = exports.Dictionary = exports.Deck = exports.BinarySearchTree = exports.Array = exports.Algorithms = void 0;
|
|
7
|
+
var Algorithms_1 = require("./Algorithms");
|
|
8
|
+
Object.defineProperty(exports, "Algorithms", { enumerable: true, get: function () { return __importDefault(Algorithms_1).default; } });
|
|
9
|
+
var Array_1 = require("./Array");
|
|
10
|
+
Object.defineProperty(exports, "Array", { enumerable: true, get: function () { return __importDefault(Array_1).default; } });
|
|
11
|
+
var BinarySearchTree_1 = require("./BinarySearchTree");
|
|
12
|
+
Object.defineProperty(exports, "BinarySearchTree", { enumerable: true, get: function () { return __importDefault(BinarySearchTree_1).default; } });
|
|
13
|
+
var Deck_1 = require("./Deck");
|
|
14
|
+
Object.defineProperty(exports, "Deck", { enumerable: true, get: function () { return __importDefault(Deck_1).default; } });
|
|
15
|
+
var Dictionary_1 = require("./Dictionary");
|
|
16
|
+
Object.defineProperty(exports, "Dictionary", { enumerable: true, get: function () { return __importDefault(Dictionary_1).default; } });
|
|
17
|
+
var DoublyLinkedList_1 = require("./DoublyLinkedList");
|
|
18
|
+
Object.defineProperty(exports, "DoublyLinkedList", { enumerable: true, get: function () { return __importDefault(DoublyLinkedList_1).default; } });
|
|
19
|
+
var Graph_1 = require("./Graph");
|
|
20
|
+
Object.defineProperty(exports, "Graph", { enumerable: true, get: function () { return __importDefault(Graph_1).default; } });
|
|
21
|
+
var HashTable_1 = require("./HashTable");
|
|
22
|
+
Object.defineProperty(exports, "HashTable", { enumerable: true, get: function () { return __importDefault(HashTable_1).default; } });
|
|
23
|
+
var HashTableLinearProbing_1 = require("./HashTableLinearProbing");
|
|
24
|
+
Object.defineProperty(exports, "HashTableLinearProbing", { enumerable: true, get: function () { return __importDefault(HashTableLinearProbing_1).default; } });
|
|
25
|
+
var HashTableSeparateChaining_1 = require("./HashTableSeparateChaining");
|
|
26
|
+
Object.defineProperty(exports, "HashTableSeparateChaining", { enumerable: true, get: function () { return __importDefault(HashTableSeparateChaining_1).default; } });
|
|
27
|
+
var LinkedList_1 = require("./LinkedList");
|
|
28
|
+
Object.defineProperty(exports, "LinkedList", { enumerable: true, get: function () { return __importDefault(LinkedList_1).default; } });
|
|
29
|
+
var List_1 = require("./List");
|
|
30
|
+
Object.defineProperty(exports, "List", { enumerable: true, get: function () { return __importDefault(List_1).default; } });
|
|
31
|
+
var MaxHeap_1 = require("./MaxHeap");
|
|
32
|
+
Object.defineProperty(exports, "MaxHeap", { enumerable: true, get: function () { return __importDefault(MaxHeap_1).default; } });
|
|
33
|
+
var MinHeap_1 = require("./MinHeap");
|
|
34
|
+
Object.defineProperty(exports, "MinHeap", { enumerable: true, get: function () { return __importDefault(MinHeap_1).default; } });
|
|
35
|
+
var Queue_1 = require("./Queue");
|
|
36
|
+
Object.defineProperty(exports, "Queue", { enumerable: true, get: function () { return __importDefault(Queue_1).default; } });
|
|
37
|
+
var Set_1 = require("./Set");
|
|
38
|
+
Object.defineProperty(exports, "Set", { enumerable: true, get: function () { return __importDefault(Set_1).default; } });
|
|
39
|
+
var Stack_1 = require("./Stack");
|
|
40
|
+
Object.defineProperty(exports, "Stack", { enumerable: true, get: function () { return __importDefault(Stack_1).default; } });
|