typescript-ds-lib 0.4.8 → 0.4.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/README.md +1 -0
- package/dist/data-structures/trie.d.ts +32 -0
- package/dist/data-structures/trie.js +179 -0
- package/dist/data-structures/trie.js.map +1 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.js +3 -1
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { BaseCollection } from './base-collection';
|
|
2
|
+
export interface Trie<K, V, TToken = string> {
|
|
3
|
+
insert(key: K, value: V): void;
|
|
4
|
+
find(key: K): V | undefined;
|
|
5
|
+
has(key: K): boolean;
|
|
6
|
+
remove(key: K): boolean;
|
|
7
|
+
hasPrefix(prefix: K): boolean;
|
|
8
|
+
valuesWithPrefix(prefix: K): V[];
|
|
9
|
+
entriesWithPrefix(prefix: K): [K, V][];
|
|
10
|
+
forEach(callback: (key: K, value: V) => void): void;
|
|
11
|
+
}
|
|
12
|
+
export interface TrieOptions<K, TToken> {
|
|
13
|
+
tokenize?: (key: K) => ReadonlyArray<TToken>;
|
|
14
|
+
detokenize?: (tokens: ReadonlyArray<TToken>) => K;
|
|
15
|
+
}
|
|
16
|
+
export declare class Trie<K = string, V = unknown, TToken = string> extends BaseCollection<V> implements Trie<K, V, TToken> {
|
|
17
|
+
private readonly root;
|
|
18
|
+
private count;
|
|
19
|
+
private readonly tokenizeKey;
|
|
20
|
+
private readonly detokenizeKey;
|
|
21
|
+
constructor(options?: TrieOptions<K, TToken>);
|
|
22
|
+
size(): number;
|
|
23
|
+
isEmpty(): boolean;
|
|
24
|
+
clear(): void;
|
|
25
|
+
equals(other: Trie<K, V, TToken>): boolean;
|
|
26
|
+
private createNode;
|
|
27
|
+
private findNode;
|
|
28
|
+
private removeRecursive;
|
|
29
|
+
private collect;
|
|
30
|
+
private defaultTokenize;
|
|
31
|
+
private defaultDetokenize;
|
|
32
|
+
}
|
|
@@ -0,0 +1,179 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.Trie = void 0;
|
|
4
|
+
const base_collection_1 = require("./base-collection");
|
|
5
|
+
const utils_1 = require("./utils");
|
|
6
|
+
class Trie extends base_collection_1.BaseCollection {
|
|
7
|
+
root;
|
|
8
|
+
count;
|
|
9
|
+
tokenizeKey;
|
|
10
|
+
detokenizeKey;
|
|
11
|
+
constructor(options = {}) {
|
|
12
|
+
super();
|
|
13
|
+
this.root = this.createNode();
|
|
14
|
+
this.count = 0;
|
|
15
|
+
this.tokenizeKey = options.tokenize ?? this.defaultTokenize;
|
|
16
|
+
this.detokenizeKey = options.detokenize ?? this.defaultDetokenize;
|
|
17
|
+
}
|
|
18
|
+
insert(key, value) {
|
|
19
|
+
const tokens = this.tokenizeKey(key);
|
|
20
|
+
let node = this.root;
|
|
21
|
+
for (let i = 0; i < tokens.length; i++) {
|
|
22
|
+
const token = tokens[i];
|
|
23
|
+
let next = node.children.get(token);
|
|
24
|
+
if (!next) {
|
|
25
|
+
next = this.createNode();
|
|
26
|
+
node.children.set(token, next);
|
|
27
|
+
}
|
|
28
|
+
node = next;
|
|
29
|
+
}
|
|
30
|
+
if (!node.isTerminal) {
|
|
31
|
+
this.count++;
|
|
32
|
+
node.isTerminal = true;
|
|
33
|
+
}
|
|
34
|
+
node.value = value;
|
|
35
|
+
}
|
|
36
|
+
find(key) {
|
|
37
|
+
const node = this.findNode(this.tokenizeKey(key));
|
|
38
|
+
if (!node || !node.isTerminal) {
|
|
39
|
+
return undefined;
|
|
40
|
+
}
|
|
41
|
+
return node.value;
|
|
42
|
+
}
|
|
43
|
+
has(key) {
|
|
44
|
+
const node = this.findNode(this.tokenizeKey(key));
|
|
45
|
+
return !!node && node.isTerminal;
|
|
46
|
+
}
|
|
47
|
+
remove(key) {
|
|
48
|
+
const tokens = this.tokenizeKey(key);
|
|
49
|
+
const removed = { value: false };
|
|
50
|
+
this.removeRecursive(this.root, tokens, 0, removed);
|
|
51
|
+
if (removed.value) {
|
|
52
|
+
this.count--;
|
|
53
|
+
}
|
|
54
|
+
return removed.value;
|
|
55
|
+
}
|
|
56
|
+
hasPrefix(prefix) {
|
|
57
|
+
return this.findNode(this.tokenizeKey(prefix)) !== undefined;
|
|
58
|
+
}
|
|
59
|
+
valuesWithPrefix(prefix) {
|
|
60
|
+
const prefixNode = this.findNode(this.tokenizeKey(prefix));
|
|
61
|
+
if (!prefixNode) {
|
|
62
|
+
return [];
|
|
63
|
+
}
|
|
64
|
+
const values = [];
|
|
65
|
+
this.collect(prefixNode, [], (_, value) => {
|
|
66
|
+
values.push(value);
|
|
67
|
+
});
|
|
68
|
+
return values;
|
|
69
|
+
}
|
|
70
|
+
entriesWithPrefix(prefix) {
|
|
71
|
+
const prefixTokens = this.tokenizeKey(prefix);
|
|
72
|
+
const prefixNode = this.findNode(prefixTokens);
|
|
73
|
+
if (!prefixNode) {
|
|
74
|
+
return [];
|
|
75
|
+
}
|
|
76
|
+
const entries = [];
|
|
77
|
+
this.collect(prefixNode, [...prefixTokens], (tokens, value) => {
|
|
78
|
+
entries.push([this.detokenizeKey(tokens), value]);
|
|
79
|
+
});
|
|
80
|
+
return entries;
|
|
81
|
+
}
|
|
82
|
+
forEach(callback) {
|
|
83
|
+
this.collect(this.root, [], (tokens, value) => {
|
|
84
|
+
callback(this.detokenizeKey(tokens), value);
|
|
85
|
+
});
|
|
86
|
+
}
|
|
87
|
+
size() {
|
|
88
|
+
return this.count;
|
|
89
|
+
}
|
|
90
|
+
isEmpty() {
|
|
91
|
+
return this.count === 0;
|
|
92
|
+
}
|
|
93
|
+
clear() {
|
|
94
|
+
this.root.children.clear();
|
|
95
|
+
this.root.value = undefined;
|
|
96
|
+
this.root.isTerminal = false;
|
|
97
|
+
this.count = 0;
|
|
98
|
+
}
|
|
99
|
+
equals(other) {
|
|
100
|
+
if (!other || !(other instanceof Trie)) {
|
|
101
|
+
return false;
|
|
102
|
+
}
|
|
103
|
+
if (this.size() !== other.size()) {
|
|
104
|
+
return false;
|
|
105
|
+
}
|
|
106
|
+
let isEqual = true;
|
|
107
|
+
this.forEach((key, value) => {
|
|
108
|
+
if (!utils_1.Utils.equals(value, other.find(key))) {
|
|
109
|
+
isEqual = false;
|
|
110
|
+
}
|
|
111
|
+
});
|
|
112
|
+
return isEqual;
|
|
113
|
+
}
|
|
114
|
+
createNode() {
|
|
115
|
+
return {
|
|
116
|
+
children: new Map(),
|
|
117
|
+
value: undefined,
|
|
118
|
+
isTerminal: false
|
|
119
|
+
};
|
|
120
|
+
}
|
|
121
|
+
findNode(tokens) {
|
|
122
|
+
let node = this.root;
|
|
123
|
+
for (let i = 0; i < tokens.length; i++) {
|
|
124
|
+
if (!node) {
|
|
125
|
+
return undefined;
|
|
126
|
+
}
|
|
127
|
+
node = node.children.get(tokens[i]);
|
|
128
|
+
}
|
|
129
|
+
return node;
|
|
130
|
+
}
|
|
131
|
+
removeRecursive(node, tokens, depth, removed) {
|
|
132
|
+
if (depth === tokens.length) {
|
|
133
|
+
if (!node.isTerminal) {
|
|
134
|
+
return false;
|
|
135
|
+
}
|
|
136
|
+
node.isTerminal = false;
|
|
137
|
+
node.value = undefined;
|
|
138
|
+
removed.value = true;
|
|
139
|
+
return node.children.size === 0;
|
|
140
|
+
}
|
|
141
|
+
const token = tokens[depth];
|
|
142
|
+
const child = node.children.get(token);
|
|
143
|
+
if (!child) {
|
|
144
|
+
return false;
|
|
145
|
+
}
|
|
146
|
+
const shouldDeleteChild = this.removeRecursive(child, tokens, depth + 1, removed);
|
|
147
|
+
if (shouldDeleteChild) {
|
|
148
|
+
node.children.delete(token);
|
|
149
|
+
}
|
|
150
|
+
return !node.isTerminal && node.children.size === 0;
|
|
151
|
+
}
|
|
152
|
+
collect(node, tokens, callback) {
|
|
153
|
+
if (node.isTerminal) {
|
|
154
|
+
callback(tokens, node.value);
|
|
155
|
+
}
|
|
156
|
+
for (const [token, child] of node.children) {
|
|
157
|
+
tokens.push(token);
|
|
158
|
+
this.collect(child, tokens, callback);
|
|
159
|
+
tokens.pop();
|
|
160
|
+
}
|
|
161
|
+
}
|
|
162
|
+
defaultTokenize = (key) => {
|
|
163
|
+
if (typeof key === 'string') {
|
|
164
|
+
return Array.from(key);
|
|
165
|
+
}
|
|
166
|
+
throw new Error('Trie tokenization is missing. Provide options.tokenize for non-string keys.');
|
|
167
|
+
};
|
|
168
|
+
defaultDetokenize = (tokens) => {
|
|
169
|
+
if (tokens.length === 0) {
|
|
170
|
+
return '';
|
|
171
|
+
}
|
|
172
|
+
if (typeof tokens[0] === 'string') {
|
|
173
|
+
return tokens.join('');
|
|
174
|
+
}
|
|
175
|
+
throw new Error('Trie detokenization is missing. Provide options.detokenize for non-string keys.');
|
|
176
|
+
};
|
|
177
|
+
}
|
|
178
|
+
exports.Trie = Trie;
|
|
179
|
+
//# sourceMappingURL=trie.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"trie.js","sourceRoot":"","sources":["../../data-structures/trie.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -13,6 +13,7 @@ export { Queue } from './data-structures/queue';
|
|
|
13
13
|
export { RedBlackTree } from './data-structures/red-black-tree';
|
|
14
14
|
export { Set } from './data-structures/set';
|
|
15
15
|
export { Stack } from './data-structures/stack';
|
|
16
|
+
export { Trie } from './data-structures/trie';
|
|
16
17
|
export { binarySearch } from './algorithms/binary-search';
|
|
17
18
|
export { levenshteinDistance } from './algorithms/levenshtein-distance';
|
|
18
19
|
export { shuffle } from './algorithms/shuffle';
|
package/dist/index.js
CHANGED
|
@@ -14,7 +14,7 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
14
14
|
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
15
|
};
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
-
exports.shuffle = exports.levenshteinDistance = exports.binarySearch = exports.Stack = exports.Set = exports.RedBlackTree = exports.Queue = exports.PriorityQueue = exports.Matrix = exports.Map = exports.LinkedList = exports.Heap = exports.HashTable = exports.LinkedListGraph = exports.MatrixGraph = exports.Deque = exports.BinarySearchTree = void 0;
|
|
17
|
+
exports.shuffle = exports.levenshteinDistance = exports.binarySearch = exports.Trie = exports.Stack = exports.Set = exports.RedBlackTree = exports.Queue = exports.PriorityQueue = exports.Matrix = exports.Map = exports.LinkedList = exports.Heap = exports.HashTable = exports.LinkedListGraph = exports.MatrixGraph = exports.Deque = exports.BinarySearchTree = void 0;
|
|
18
18
|
__exportStar(require("./types"), exports);
|
|
19
19
|
var binary_search_tree_1 = require("./data-structures/binary-search-tree");
|
|
20
20
|
Object.defineProperty(exports, "BinarySearchTree", { enumerable: true, get: function () { return binary_search_tree_1.BinarySearchTree; } });
|
|
@@ -44,6 +44,8 @@ var set_1 = require("./data-structures/set");
|
|
|
44
44
|
Object.defineProperty(exports, "Set", { enumerable: true, get: function () { return set_1.Set; } });
|
|
45
45
|
var stack_1 = require("./data-structures/stack");
|
|
46
46
|
Object.defineProperty(exports, "Stack", { enumerable: true, get: function () { return stack_1.Stack; } });
|
|
47
|
+
var trie_1 = require("./data-structures/trie");
|
|
48
|
+
Object.defineProperty(exports, "Trie", { enumerable: true, get: function () { return trie_1.Trie; } });
|
|
47
49
|
var binary_search_1 = require("./algorithms/binary-search");
|
|
48
50
|
Object.defineProperty(exports, "binarySearch", { enumerable: true, get: function () { return binary_search_1.binarySearch; } });
|
|
49
51
|
var levenshtein_distance_1 = require("./algorithms/levenshtein-distance");
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,0CAAwB;AACxB,2EAAwE;AAA/D,sHAAA,gBAAgB,OAAA;AACzB,iDAAgD;AAAvC,8FAAA,KAAK,OAAA;AACd,qEAAmE;AAA1D,2GAAA,WAAW,OAAA;AACpB,+EAA4E;AAAnE,oHAAA,eAAe,OAAA;AACxB,2DAAyD;AAAhD,uGAAA,SAAS,OAAA;AAClB,+CAA8C;AAArC,4FAAA,IAAI,OAAA;AACb,6DAA2D;AAAlD,yGAAA,UAAU,OAAA;AACnB,6CAA4C;AAAnC,0FAAA,GAAG,OAAA;AACZ,mDAAkD;AAAzC,gGAAA,MAAM,OAAA;AACf,mEAAiE;AAAxD,+GAAA,aAAa,OAAA;AACtB,iDAAgD;AAAvC,8FAAA,KAAK,OAAA;AACd,mEAAgE;AAAvD,8GAAA,YAAY,OAAA;AACrB,6CAA4C;AAAnC,0FAAA,GAAG,OAAA;AACZ,iDAAgD;AAAvC,8FAAA,KAAK,OAAA;AACd,4DAA0D;AAAjD,6GAAA,YAAY,OAAA;AACrB,0EAAwE;AAA/D,2HAAA,mBAAmB,OAAA;AAC5B,gDAA+C;AAAtC,kGAAA,OAAO,OAAA"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,0CAAwB;AACxB,2EAAwE;AAA/D,sHAAA,gBAAgB,OAAA;AACzB,iDAAgD;AAAvC,8FAAA,KAAK,OAAA;AACd,qEAAmE;AAA1D,2GAAA,WAAW,OAAA;AACpB,+EAA4E;AAAnE,oHAAA,eAAe,OAAA;AACxB,2DAAyD;AAAhD,uGAAA,SAAS,OAAA;AAClB,+CAA8C;AAArC,4FAAA,IAAI,OAAA;AACb,6DAA2D;AAAlD,yGAAA,UAAU,OAAA;AACnB,6CAA4C;AAAnC,0FAAA,GAAG,OAAA;AACZ,mDAAkD;AAAzC,gGAAA,MAAM,OAAA;AACf,mEAAiE;AAAxD,+GAAA,aAAa,OAAA;AACtB,iDAAgD;AAAvC,8FAAA,KAAK,OAAA;AACd,mEAAgE;AAAvD,8GAAA,YAAY,OAAA;AACrB,6CAA4C;AAAnC,0FAAA,GAAG,OAAA;AACZ,iDAAgD;AAAvC,8FAAA,KAAK,OAAA;AACd,+CAA8C;AAArC,4FAAA,IAAI,OAAA;AACb,4DAA0D;AAAjD,6GAAA,YAAY,OAAA;AACrB,0EAAwE;AAA/D,2HAAA,mBAAmB,OAAA;AAC5B,gDAA+C;AAAtC,kGAAA,OAAO,OAAA"}
|