data-structure-typed 2.5.1 → 2.5.3
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 +5 -1
- package/MIGRATION.md +169 -0
- package/README.md +135 -23
- package/README_CN.md +551 -143
- package/SPECIFICATION.md +20 -14
- package/SPECIFICATION.zh-CN.md +20 -14
- package/dist/cjs/binary-tree.cjs +6460 -1591
- package/dist/cjs/graph.cjs +440 -20
- package/dist/cjs/hash.cjs +125 -22
- package/dist/cjs/heap.cjs +196 -47
- package/dist/cjs/index.cjs +8486 -2429
- package/dist/cjs/linked-list.cjs +456 -31
- package/dist/cjs/matrix.cjs +79 -9
- package/dist/cjs/priority-queue.cjs +193 -44
- package/dist/cjs/queue.cjs +391 -2
- package/dist/cjs/stack.cjs +92 -6
- package/dist/cjs/trie.cjs +122 -28
- package/dist/cjs-legacy/binary-tree.cjs +6484 -1612
- package/dist/cjs-legacy/graph.cjs +440 -20
- package/dist/cjs-legacy/hash.cjs +125 -22
- package/dist/cjs-legacy/heap.cjs +196 -47
- package/dist/cjs-legacy/index.cjs +8654 -2594
- package/dist/cjs-legacy/linked-list.cjs +456 -31
- package/dist/cjs-legacy/matrix.cjs +79 -9
- package/dist/cjs-legacy/priority-queue.cjs +193 -44
- package/dist/cjs-legacy/queue.cjs +391 -2
- package/dist/cjs-legacy/stack.cjs +92 -6
- package/dist/cjs-legacy/trie.cjs +122 -28
- package/dist/esm/binary-tree.mjs +6460 -1591
- package/dist/esm/graph.mjs +440 -20
- package/dist/esm/hash.mjs +125 -22
- package/dist/esm/heap.mjs +196 -47
- package/dist/esm/index.mjs +8486 -2430
- package/dist/esm/linked-list.mjs +456 -31
- package/dist/esm/matrix.mjs +79 -9
- package/dist/esm/priority-queue.mjs +193 -44
- package/dist/esm/queue.mjs +391 -2
- package/dist/esm/stack.mjs +92 -6
- package/dist/esm/trie.mjs +122 -28
- package/dist/esm-legacy/binary-tree.mjs +6484 -1612
- package/dist/esm-legacy/graph.mjs +440 -20
- package/dist/esm-legacy/hash.mjs +125 -22
- package/dist/esm-legacy/heap.mjs +196 -47
- package/dist/esm-legacy/index.mjs +8654 -2595
- package/dist/esm-legacy/linked-list.mjs +456 -31
- package/dist/esm-legacy/matrix.mjs +79 -9
- package/dist/esm-legacy/priority-queue.mjs +193 -44
- package/dist/esm-legacy/queue.mjs +391 -2
- package/dist/esm-legacy/stack.mjs +92 -6
- package/dist/esm-legacy/trie.mjs +122 -28
- package/dist/types/common/error.d.ts +9 -0
- package/dist/types/common/index.d.ts +1 -1
- package/dist/types/data-structures/binary-tree/avl-tree.d.ts +98 -2
- package/dist/types/data-structures/binary-tree/binary-indexed-tree.d.ts +112 -0
- package/dist/types/data-structures/binary-tree/binary-tree.d.ts +214 -13
- package/dist/types/data-structures/binary-tree/bst.d.ts +294 -3
- package/dist/types/data-structures/binary-tree/red-black-tree.d.ts +155 -8
- package/dist/types/data-structures/binary-tree/segment-tree.d.ts +48 -0
- package/dist/types/data-structures/binary-tree/tree-map.d.ts +1370 -323
- package/dist/types/data-structures/binary-tree/tree-multi-map.d.ts +1329 -316
- package/dist/types/data-structures/binary-tree/tree-multi-set.d.ts +1116 -295
- package/dist/types/data-structures/binary-tree/tree-set.d.ts +1330 -326
- package/dist/types/data-structures/graph/directed-graph.d.ts +80 -0
- package/dist/types/data-structures/graph/undirected-graph.d.ts +72 -0
- package/dist/types/data-structures/hash/hash-map.d.ts +95 -6
- package/dist/types/data-structures/heap/heap.d.ts +154 -12
- package/dist/types/data-structures/linked-list/doubly-linked-list.d.ts +143 -0
- package/dist/types/data-structures/linked-list/singly-linked-list.d.ts +121 -1
- package/dist/types/data-structures/linked-list/skip-linked-list.d.ts +144 -0
- package/dist/types/data-structures/matrix/matrix.d.ts +64 -0
- package/dist/types/data-structures/queue/deque.d.ts +142 -0
- package/dist/types/data-structures/queue/queue.d.ts +109 -0
- package/dist/types/data-structures/stack/stack.d.ts +82 -2
- package/dist/types/data-structures/trie/trie.d.ts +96 -0
- package/dist/types/interfaces/binary-tree.d.ts +2 -3
- package/dist/types/types/data-structures/binary-tree/bst.d.ts +1 -0
- package/dist/types/types/data-structures/binary-tree/tree-map.d.ts +5 -0
- package/dist/types/types/data-structures/binary-tree/tree-multi-set.d.ts +4 -0
- package/dist/types/types/data-structures/binary-tree/tree-set.d.ts +4 -0
- package/dist/umd/data-structure-typed.js +8623 -2564
- package/dist/umd/data-structure-typed.min.js +5 -5
- package/docs-site-docusaurus/docs/api/classes/AVLTree.md +696 -194
- package/docs-site-docusaurus/docs/api/classes/AVLTreeNode.md +11 -11
- package/docs-site-docusaurus/docs/api/classes/AbstractGraph.md +71 -71
- package/docs-site-docusaurus/docs/api/classes/BST.md +639 -189
- package/docs-site-docusaurus/docs/api/classes/BSTNode.md +13 -13
- package/docs-site-docusaurus/docs/api/classes/BinaryIndexedTree.md +15 -15
- package/docs-site-docusaurus/docs/api/classes/BinaryTree.md +148 -160
- package/docs-site-docusaurus/docs/api/classes/BinaryTreeNode.md +13 -13
- package/docs-site-docusaurus/docs/api/classes/Deque.md +105 -91
- package/docs-site-docusaurus/docs/api/classes/DirectedGraph.md +82 -82
- package/docs-site-docusaurus/docs/api/classes/DoublyLinkedList.md +104 -74
- package/docs-site-docusaurus/docs/api/classes/DoublyLinkedListNode.md +8 -8
- package/docs-site-docusaurus/docs/api/classes/FibonacciHeap.md +12 -12
- package/docs-site-docusaurus/docs/api/classes/FibonacciHeapNode.md +1 -1
- package/docs-site-docusaurus/docs/api/classes/HashMap.md +51 -51
- package/docs-site-docusaurus/docs/api/classes/Heap.md +96 -85
- package/docs-site-docusaurus/docs/api/classes/IterableElementBase.md +25 -25
- package/docs-site-docusaurus/docs/api/classes/IterableEntryBase.md +33 -33
- package/docs-site-docusaurus/docs/api/classes/LinearBase.md +50 -50
- package/docs-site-docusaurus/docs/api/classes/LinearLinkedBase.md +55 -55
- package/docs-site-docusaurus/docs/api/classes/LinkedHashMap.md +55 -55
- package/docs-site-docusaurus/docs/api/classes/LinkedListNode.md +6 -6
- package/docs-site-docusaurus/docs/api/classes/LinkedListQueue.md +78 -78
- package/docs-site-docusaurus/docs/api/classes/MapGraph.md +82 -82
- package/docs-site-docusaurus/docs/api/classes/Matrix.md +31 -31
- package/docs-site-docusaurus/docs/api/classes/MaxHeap.md +104 -89
- package/docs-site-docusaurus/docs/api/classes/MaxPriorityQueue.md +104 -89
- package/docs-site-docusaurus/docs/api/classes/MinHeap.md +104 -89
- package/docs-site-docusaurus/docs/api/classes/MinPriorityQueue.md +104 -89
- package/docs-site-docusaurus/docs/api/classes/Navigator.md +5 -5
- package/docs-site-docusaurus/docs/api/classes/PriorityQueue.md +103 -88
- package/docs-site-docusaurus/docs/api/classes/Queue.md +112 -60
- package/docs-site-docusaurus/docs/api/classes/RedBlackTree.md +708 -206
- package/docs-site-docusaurus/docs/api/classes/SegmentTree.md +10 -10
- package/docs-site-docusaurus/docs/api/classes/SinglyLinkedList.md +79 -79
- package/docs-site-docusaurus/docs/api/classes/SinglyLinkedListNode.md +6 -6
- package/docs-site-docusaurus/docs/api/classes/SkipList.md +44 -44
- package/docs-site-docusaurus/docs/api/classes/Stack.md +42 -42
- package/docs-site-docusaurus/docs/api/classes/TreeMap.md +236 -33
- package/docs-site-docusaurus/docs/api/classes/TreeMultiMap.md +162 -46
- package/docs-site-docusaurus/docs/api/classes/TreeSet.md +232 -32
- package/docs-site-docusaurus/docs/api/classes/Trie.md +47 -47
- package/docs-site-docusaurus/docs/api/classes/TrieNode.md +8 -8
- package/docs-site-docusaurus/docs/api/classes/UndirectedGraph.md +81 -81
- package/docs-site-docusaurus/docs/guide/architecture.md +75 -5
- package/docs-site-docusaurus/docs/guide/concepts.md +53 -3
- package/docs-site-docusaurus/docs/guide/faq.md +233 -0
- package/docs-site-docusaurus/docs/guide/guides.md +43 -58
- package/docs-site-docusaurus/docs/guide/installation.md +2 -0
- package/docs-site-docusaurus/docs/guide/integrations.md +75 -176
- package/docs-site-docusaurus/docs/guide/overview.md +132 -11
- package/docs-site-docusaurus/docs/guide/performance.md +2 -0
- package/docs-site-docusaurus/docs/guide/quick-start.md +31 -0
- package/docs-site-docusaurus/docs/guide/use-cases/_category_.json +6 -0
- package/docs-site-docusaurus/docs/guide/use-cases/array-sort-alternative.md +158 -0
- package/docs-site-docusaurus/docs/guide/use-cases/heap-vs-sorting.md +92 -0
- package/docs-site-docusaurus/docs/guide/use-cases/map-vs-treemap.md +151 -0
- package/docs-site-docusaurus/docs/guide/use-cases/priority-queue-typescript.md +113 -0
- package/docs-site-docusaurus/docs/guide/use-cases/treemap-javascript.md +151 -0
- package/docs-site-docusaurus/docusaurus.config.ts +1 -1
- package/docs-site-docusaurus/src/pages/index.tsx +55 -2
- package/docs-site-docusaurus/static/llms.txt +37 -0
- package/docs-site-docusaurus/typedoc.json +1 -0
- package/llms.txt +37 -0
- package/package.json +65 -56
- package/src/common/error.ts +19 -1
- package/src/common/index.ts +1 -1
- package/src/data-structures/base/iterable-element-base.ts +3 -2
- package/src/data-structures/binary-tree/avl-tree.ts +99 -5
- package/src/data-structures/binary-tree/binary-indexed-tree.ts +102 -4
- package/src/data-structures/binary-tree/binary-tree.ts +239 -78
- package/src/data-structures/binary-tree/bst.ts +542 -13
- package/src/data-structures/binary-tree/red-black-tree.ts +155 -15
- package/src/data-structures/binary-tree/segment-tree.ts +42 -0
- package/src/data-structures/binary-tree/tree-map.ts +1223 -261
- package/src/data-structures/binary-tree/tree-multi-map.ts +939 -30
- package/src/data-structures/binary-tree/tree-multi-set.ts +746 -10
- package/src/data-structures/binary-tree/tree-set.ts +1018 -99
- package/src/data-structures/graph/abstract-graph.ts +2 -2
- package/src/data-structures/graph/directed-graph.ts +71 -1
- package/src/data-structures/graph/undirected-graph.ts +64 -1
- package/src/data-structures/hash/hash-map.ts +102 -16
- package/src/data-structures/heap/heap.ts +153 -23
- package/src/data-structures/heap/max-heap.ts +2 -2
- package/src/data-structures/linked-list/doubly-linked-list.ts +139 -0
- package/src/data-structures/linked-list/singly-linked-list.ts +106 -1
- package/src/data-structures/linked-list/skip-linked-list.ts +131 -5
- package/src/data-structures/matrix/matrix.ts +65 -9
- package/src/data-structures/priority-queue/max-priority-queue.ts +2 -2
- package/src/data-structures/queue/deque.ts +130 -0
- package/src/data-structures/queue/queue.ts +109 -0
- package/src/data-structures/stack/stack.ts +75 -5
- package/src/data-structures/trie/trie.ts +86 -2
- package/src/interfaces/binary-tree.ts +1 -9
- package/src/types/data-structures/binary-tree/bst.ts +1 -0
- package/src/types/data-structures/binary-tree/tree-map.ts +6 -0
- package/src/types/data-structures/binary-tree/tree-multi-set.ts +5 -0
- package/src/types/data-structures/binary-tree/tree-set.ts +5 -0
- package/.vitepress/cache/deps_temp_51f5f1b0/chunk-7OIKW5WK.js +0 -12984
- package/.vitepress/cache/deps_temp_51f5f1b0/package.json +0 -3
- package/.vitepress/cache/deps_temp_51f5f1b0/vitepress___@vue_devtools-api.js +0 -4505
- package/.vitepress/cache/deps_temp_51f5f1b0/vitepress___@vueuse_core.js +0 -9731
- package/.vitepress/cache/deps_temp_51f5f1b0/vue.js +0 -347
package/SPECIFICATION.md
CHANGED
|
@@ -101,21 +101,25 @@
|
|
|
101
101
|
|
|
102
102
|
```typescript
|
|
103
103
|
// Add operations
|
|
104
|
-
structure.push(element: T):
|
|
105
|
-
structure.unshift(element: T):
|
|
104
|
+
structure.push(element: T): boolean // Add to end
|
|
105
|
+
structure.unshift(element: T): boolean // Add to start
|
|
106
106
|
|
|
107
107
|
// Remove operations
|
|
108
108
|
structure.pop(): T | undefined // Remove from end
|
|
109
109
|
structure.shift(): T | undefined // Remove from start
|
|
110
|
+
structure.delete(element: T): boolean // Remove first match
|
|
111
|
+
structure.deleteAt(index: number): T | undefined // Remove at index
|
|
112
|
+
structure.deleteWhere(pred: Function): boolean // Remove first match by predicate
|
|
110
113
|
|
|
111
114
|
// Peek operations (read without removing)
|
|
112
|
-
structure.peek(): T | undefined // View
|
|
113
|
-
structure.
|
|
114
|
-
structure.
|
|
115
|
+
structure.peek(): T | undefined // View front element (Queue/Deque/Stack)
|
|
116
|
+
structure.first: T | undefined // View first element (getter)
|
|
117
|
+
structure.last: T | undefined // View last element (getter)
|
|
115
118
|
|
|
116
119
|
// Size and queries
|
|
117
|
-
structure.size: number // Element count
|
|
118
|
-
structure.
|
|
120
|
+
structure.size: number // Element count (Stack, Trie, etc.)
|
|
121
|
+
structure.length: number // Element count (Queue, Deque, LinkedList)
|
|
122
|
+
structure.isEmpty(): boolean // Check if empty
|
|
119
123
|
```
|
|
120
124
|
|
|
121
125
|
### Tree & Map API
|
|
@@ -124,8 +128,8 @@ structure.isEmpty: boolean // Check if empty
|
|
|
124
128
|
|
|
125
129
|
```typescript
|
|
126
130
|
// Add/update
|
|
127
|
-
structure.set(key: K, value: V): this
|
|
128
|
-
structure.setMany(entries: [K, V][]):
|
|
131
|
+
structure.set(key: K, value: V): this // Returns this for chaining (Map/HashMap)
|
|
132
|
+
structure.setMany(entries: [K, V][]): boolean[]
|
|
129
133
|
|
|
130
134
|
// Query
|
|
131
135
|
structure.get(key: K): V | undefined
|
|
@@ -134,6 +138,7 @@ structure.size: number
|
|
|
134
138
|
|
|
135
139
|
// Remove
|
|
136
140
|
structure.delete(key: K): boolean
|
|
141
|
+
structure.deleteWhere(pred: Function): boolean // TreeMap/TreeSet/LinkedHashMap
|
|
137
142
|
structure.clear(): void
|
|
138
143
|
|
|
139
144
|
// Iteration
|
|
@@ -148,17 +153,18 @@ structure.entries(): IterableIterator<[K, V]>
|
|
|
148
153
|
|
|
149
154
|
```typescript
|
|
150
155
|
// Add/remove
|
|
151
|
-
heap.
|
|
152
|
-
heap.
|
|
153
|
-
heap.
|
|
154
|
-
heap.
|
|
156
|
+
heap.add(element: T): boolean // Add element
|
|
157
|
+
heap.pop(): T | undefined // Remove highest/lowest priority
|
|
158
|
+
heap.poll(): T | undefined // Deprecated — use pop()
|
|
159
|
+
heap.delete(element: T): boolean // Remove first match
|
|
160
|
+
heap.deleteWhere(pred: Function): boolean // Remove first match by predicate
|
|
155
161
|
|
|
156
162
|
// Peek
|
|
157
163
|
heap.peek(): T | undefined // View highest/lowest without removing
|
|
158
164
|
|
|
159
165
|
// Query
|
|
160
166
|
heap.size: number
|
|
161
|
-
heap.isEmpty: boolean
|
|
167
|
+
heap.isEmpty(): boolean
|
|
162
168
|
```
|
|
163
169
|
|
|
164
170
|
### Array Methods (Available on All Structures)
|
package/SPECIFICATION.zh-CN.md
CHANGED
|
@@ -101,21 +101,25 @@
|
|
|
101
101
|
|
|
102
102
|
```typescript
|
|
103
103
|
// 添加操作
|
|
104
|
-
structure.push(element: T):
|
|
105
|
-
structure.unshift(element: T):
|
|
104
|
+
structure.push(element: T): boolean // 添加到末尾
|
|
105
|
+
structure.unshift(element: T): boolean // 添加到开头
|
|
106
106
|
|
|
107
107
|
// 删除操作
|
|
108
108
|
structure.pop(): T | undefined // 从末尾删除
|
|
109
109
|
structure.shift(): T | undefined // 从开头删除
|
|
110
|
+
structure.delete(element: T): boolean // 删除第一个匹配
|
|
111
|
+
structure.deleteAt(index: number): T | undefined // 按索引删除
|
|
112
|
+
structure.deleteWhere(pred: Function): boolean // 按条件删除第一个匹配
|
|
110
113
|
|
|
111
114
|
// 查看操作(读取但不删除)
|
|
112
|
-
structure.peek(): T | undefined //
|
|
113
|
-
structure.
|
|
114
|
-
structure.
|
|
115
|
+
structure.peek(): T | undefined // 查看队头元素(Queue/Deque/Stack)
|
|
116
|
+
structure.first: T | undefined // 查看第一个元素(getter)
|
|
117
|
+
structure.last: T | undefined // 查看最后一个元素(getter)
|
|
115
118
|
|
|
116
119
|
// 大小和查询
|
|
117
|
-
structure.size: number //
|
|
118
|
-
structure.
|
|
120
|
+
structure.size: number // 元素数量(Stack、Trie 等)
|
|
121
|
+
structure.length: number // 元素数量(Queue、Deque、LinkedList)
|
|
122
|
+
structure.isEmpty(): boolean // 检查是否为空
|
|
119
123
|
```
|
|
120
124
|
|
|
121
125
|
### 树和映射 API
|
|
@@ -124,8 +128,8 @@ structure.isEmpty: boolean // 检查是否为空
|
|
|
124
128
|
|
|
125
129
|
```typescript
|
|
126
130
|
// 添加/更新
|
|
127
|
-
structure.set(key: K, value: V): this
|
|
128
|
-
structure.setMany(entries: [K, V][]):
|
|
131
|
+
structure.set(key: K, value: V): this // 返回 this 支持链式调用(Map/HashMap)
|
|
132
|
+
structure.setMany(entries: [K, V][]): boolean[]
|
|
129
133
|
|
|
130
134
|
// 查询
|
|
131
135
|
structure.get(key: K): V | undefined
|
|
@@ -134,6 +138,7 @@ structure.size: number
|
|
|
134
138
|
|
|
135
139
|
// 删除
|
|
136
140
|
structure.delete(key: K): boolean
|
|
141
|
+
structure.deleteWhere(pred: Function): boolean // TreeMap/TreeSet/LinkedHashMap
|
|
137
142
|
structure.clear(): void
|
|
138
143
|
|
|
139
144
|
// 迭代
|
|
@@ -148,17 +153,18 @@ structure.entries(): IterableIterator<[K, V]>
|
|
|
148
153
|
|
|
149
154
|
```typescript
|
|
150
155
|
// 添加/删除
|
|
151
|
-
heap.
|
|
152
|
-
heap.
|
|
153
|
-
heap.
|
|
154
|
-
heap.
|
|
156
|
+
heap.add(element: T): boolean // 添加元素
|
|
157
|
+
heap.pop(): T | undefined // 删除最高/最低优先级
|
|
158
|
+
heap.poll(): T | undefined // 已废弃 — 请使用 pop()
|
|
159
|
+
heap.delete(element: T): boolean // 删除第一个匹配
|
|
160
|
+
heap.deleteWhere(pred: Function): boolean // 按条件删除第一个匹配
|
|
155
161
|
|
|
156
162
|
// 查看
|
|
157
163
|
heap.peek(): T | undefined // 查看最高/最低优先级但不删除
|
|
158
164
|
|
|
159
165
|
// 查询
|
|
160
166
|
heap.size: number
|
|
161
|
-
heap.isEmpty: boolean
|
|
167
|
+
heap.isEmpty(): boolean
|
|
162
168
|
```
|
|
163
169
|
|
|
164
170
|
### 数组方法(所有结构上可用)
|