data-structure-typed 2.5.2 → 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 +3 -1
- package/MIGRATION.md +169 -0
- package/README.md +60 -6
- package/README_CN.md +551 -143
- package/SPECIFICATION.md +20 -14
- package/SPECIFICATION.zh-CN.md +20 -14
- package/dist/cjs/binary-tree.cjs +2417 -132
- package/dist/cjs/graph.cjs +248 -14
- package/dist/cjs/hash.cjs +62 -7
- package/dist/cjs/heap.cjs +103 -16
- package/dist/cjs/index.cjs +3046 -124
- package/dist/cjs/linked-list.cjs +219 -0
- package/dist/cjs/matrix.cjs +32 -0
- package/dist/cjs/priority-queue.cjs +101 -14
- package/dist/cjs/queue.cjs +215 -0
- package/dist/cjs/stack.cjs +44 -4
- package/dist/cjs/trie.cjs +44 -0
- package/dist/cjs-legacy/binary-tree.cjs +2406 -123
- package/dist/cjs-legacy/graph.cjs +248 -14
- package/dist/cjs-legacy/hash.cjs +62 -7
- package/dist/cjs-legacy/heap.cjs +103 -16
- package/dist/cjs-legacy/index.cjs +3105 -185
- package/dist/cjs-legacy/linked-list.cjs +219 -0
- package/dist/cjs-legacy/matrix.cjs +32 -0
- package/dist/cjs-legacy/priority-queue.cjs +101 -14
- package/dist/cjs-legacy/queue.cjs +215 -0
- package/dist/cjs-legacy/stack.cjs +44 -4
- package/dist/cjs-legacy/trie.cjs +44 -0
- package/dist/esm/binary-tree.mjs +2417 -132
- package/dist/esm/graph.mjs +248 -14
- package/dist/esm/hash.mjs +62 -7
- package/dist/esm/heap.mjs +103 -16
- package/dist/esm/index.mjs +3046 -124
- package/dist/esm/linked-list.mjs +219 -0
- package/dist/esm/matrix.mjs +32 -0
- package/dist/esm/priority-queue.mjs +101 -14
- package/dist/esm/queue.mjs +215 -0
- package/dist/esm/stack.mjs +44 -4
- package/dist/esm/trie.mjs +44 -0
- package/dist/esm-legacy/binary-tree.mjs +2406 -123
- package/dist/esm-legacy/graph.mjs +248 -14
- package/dist/esm-legacy/hash.mjs +62 -7
- package/dist/esm-legacy/heap.mjs +103 -16
- package/dist/esm-legacy/index.mjs +3105 -185
- package/dist/esm-legacy/linked-list.mjs +219 -0
- package/dist/esm-legacy/matrix.mjs +32 -0
- package/dist/esm-legacy/priority-queue.mjs +101 -14
- package/dist/esm-legacy/queue.mjs +215 -0
- package/dist/esm-legacy/stack.mjs +44 -4
- package/dist/esm-legacy/trie.mjs +44 -0
- package/dist/types/data-structures/binary-tree/avl-tree.d.ts +50 -2
- package/dist/types/data-structures/binary-tree/binary-indexed-tree.d.ts +56 -0
- package/dist/types/data-structures/binary-tree/binary-tree.d.ts +116 -15
- package/dist/types/data-structures/binary-tree/bst.d.ts +99 -3
- package/dist/types/data-structures/binary-tree/red-black-tree.d.ts +79 -8
- package/dist/types/data-structures/binary-tree/segment-tree.d.ts +24 -0
- package/dist/types/data-structures/binary-tree/tree-map.d.ts +520 -1
- package/dist/types/data-structures/binary-tree/tree-multi-map.d.ts +489 -1
- package/dist/types/data-structures/binary-tree/tree-multi-set.d.ts +393 -1
- package/dist/types/data-structures/binary-tree/tree-set.d.ts +500 -1
- package/dist/types/data-structures/graph/directed-graph.d.ts +40 -0
- package/dist/types/data-structures/graph/undirected-graph.d.ts +36 -0
- package/dist/types/data-structures/hash/hash-map.d.ts +51 -6
- package/dist/types/data-structures/heap/heap.d.ts +98 -12
- package/dist/types/data-structures/linked-list/doubly-linked-list.d.ts +75 -0
- package/dist/types/data-structures/linked-list/singly-linked-list.d.ts +61 -1
- package/dist/types/data-structures/linked-list/skip-linked-list.d.ts +72 -0
- package/dist/types/data-structures/matrix/matrix.d.ts +32 -0
- package/dist/types/data-structures/queue/deque.d.ts +82 -0
- package/dist/types/data-structures/queue/queue.d.ts +61 -0
- package/dist/types/data-structures/stack/stack.d.ts +42 -2
- package/dist/types/data-structures/trie/trie.d.ts +48 -0
- package/dist/types/interfaces/binary-tree.d.ts +2 -3
- package/dist/umd/data-structure-typed.js +3105 -185
- package/dist/umd/data-structure-typed.min.js +4 -4
- package/docs-site-docusaurus/docs/api/classes/AVLTree.md +188 -200
- package/docs-site-docusaurus/docs/api/classes/AVLTreeNode.md +11 -11
- package/docs-site-docusaurus/docs/api/classes/AbstractGraph.md +62 -62
- package/docs-site-docusaurus/docs/api/classes/BST.md +183 -195
- 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 +143 -155
- package/docs-site-docusaurus/docs/api/classes/BinaryTreeNode.md +13 -13
- package/docs-site-docusaurus/docs/api/classes/Deque.md +99 -85
- package/docs-site-docusaurus/docs/api/classes/DirectedGraph.md +73 -73
- package/docs-site-docusaurus/docs/api/classes/DoublyLinkedList.md +100 -70
- 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 +38 -38
- 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 +23 -23
- package/docs-site-docusaurus/docs/api/classes/LinearBase.md +48 -48
- package/docs-site-docusaurus/docs/api/classes/LinearLinkedBase.md +52 -52
- package/docs-site-docusaurus/docs/api/classes/LinkedHashMap.md +42 -42
- package/docs-site-docusaurus/docs/api/classes/LinkedListNode.md +6 -6
- package/docs-site-docusaurus/docs/api/classes/LinkedListQueue.md +74 -74
- package/docs-site-docusaurus/docs/api/classes/MapGraph.md +73 -73
- 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 +111 -59
- package/docs-site-docusaurus/docs/api/classes/RedBlackTree.md +200 -212
- package/docs-site-docusaurus/docs/api/classes/SegmentTree.md +10 -10
- package/docs-site-docusaurus/docs/api/classes/SinglyLinkedList.md +75 -75
- package/docs-site-docusaurus/docs/api/classes/SinglyLinkedListNode.md +6 -6
- package/docs-site-docusaurus/docs/api/classes/SkipList.md +37 -37
- package/docs-site-docusaurus/docs/api/classes/Stack.md +42 -42
- package/docs-site-docusaurus/docs/api/classes/TreeMap.md +107 -36
- package/docs-site-docusaurus/docs/api/classes/TreeMultiMap.md +43 -43
- package/docs-site-docusaurus/docs/api/classes/TreeSet.md +106 -35
- package/docs-site-docusaurus/docs/api/classes/Trie.md +43 -43
- package/docs-site-docusaurus/docs/api/classes/TrieNode.md +8 -8
- package/docs-site-docusaurus/docs/api/classes/UndirectedGraph.md +72 -72
- package/docs-site-docusaurus/docs/guide/architecture.md +75 -7
- package/docs-site-docusaurus/docs/guide/concepts.md +53 -34
- package/docs-site-docusaurus/docs/guide/faq.md +53 -0
- package/docs-site-docusaurus/docs/guide/guides.md +8 -9
- package/docs-site-docusaurus/docs/guide/integrations.md +74 -177
- package/docs-site-docusaurus/docs/guide/overview.md +131 -17
- package/docs-site-docusaurus/src/pages/index.tsx +4 -0
- package/docs-site-docusaurus/typedoc.json +1 -0
- package/package.json +7 -6
- package/src/data-structures/binary-tree/avl-tree.ts +52 -5
- package/src/data-structures/binary-tree/binary-indexed-tree.ts +56 -0
- package/src/data-structures/binary-tree/binary-tree.ts +167 -81
- package/src/data-structures/binary-tree/bst.ts +101 -7
- package/src/data-structures/binary-tree/red-black-tree.ts +82 -15
- package/src/data-structures/binary-tree/segment-tree.ts +24 -0
- package/src/data-structures/binary-tree/tree-map.ts +540 -3
- package/src/data-structures/binary-tree/tree-multi-map.ts +490 -2
- package/src/data-structures/binary-tree/tree-multi-set.ts +393 -1
- package/src/data-structures/binary-tree/tree-set.ts +520 -3
- package/src/data-structures/graph/directed-graph.ts +41 -1
- package/src/data-structures/graph/undirected-graph.ts +37 -1
- package/src/data-structures/hash/hash-map.ts +67 -12
- package/src/data-structures/heap/heap.ts +107 -19
- package/src/data-structures/linked-list/doubly-linked-list.ts +88 -0
- package/src/data-structures/linked-list/singly-linked-list.ts +61 -1
- package/src/data-structures/linked-list/skip-linked-list.ts +72 -0
- package/src/data-structures/matrix/matrix.ts +32 -0
- package/src/data-structures/queue/deque.ts +85 -0
- package/src/data-structures/queue/queue.ts +73 -0
- package/src/data-structures/stack/stack.ts +45 -5
- package/src/data-structures/trie/trie.ts +48 -0
- package/src/interfaces/binary-tree.ts +1 -9
- 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
|
### 数组方法(所有结构上可用)
|