data-structure-typed 2.4.5 → 2.5.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.
Files changed (240) hide show
  1. package/.vitepress/cache/deps_temp_51f5f1b0/chunk-7OIKW5WK.js +12984 -0
  2. package/.vitepress/cache/deps_temp_51f5f1b0/package.json +3 -0
  3. package/.vitepress/cache/deps_temp_51f5f1b0/vitepress___@vue_devtools-api.js +4505 -0
  4. package/.vitepress/cache/deps_temp_51f5f1b0/vitepress___@vueuse_core.js +9731 -0
  5. package/.vitepress/cache/deps_temp_51f5f1b0/vue.js +347 -0
  6. package/CHANGELOG.md +3 -1
  7. package/README.md +78 -31
  8. package/dist/cjs/binary-tree.cjs +23698 -0
  9. package/dist/cjs/graph.cjs +5236 -0
  10. package/dist/cjs/hash.cjs +1262 -0
  11. package/dist/cjs/heap.cjs +1540 -0
  12. package/dist/cjs/index.cjs +24509 -2899
  13. package/dist/cjs/linked-list.cjs +4370 -0
  14. package/dist/cjs/matrix.cjs +1042 -0
  15. package/dist/cjs/priority-queue.cjs +1314 -0
  16. package/dist/cjs/queue.cjs +4090 -0
  17. package/dist/cjs/stack.cjs +861 -0
  18. package/dist/cjs/trie.cjs +1173 -0
  19. package/dist/cjs-legacy/binary-tree.cjs +23730 -0
  20. package/dist/cjs-legacy/graph.cjs +5234 -0
  21. package/dist/cjs-legacy/hash.cjs +1262 -0
  22. package/dist/cjs-legacy/heap.cjs +1537 -0
  23. package/dist/cjs-legacy/index.cjs +32555 -10936
  24. package/dist/cjs-legacy/linked-list.cjs +4376 -0
  25. package/dist/cjs-legacy/matrix.cjs +1045 -0
  26. package/dist/cjs-legacy/priority-queue.cjs +1312 -0
  27. package/dist/cjs-legacy/queue.cjs +4088 -0
  28. package/dist/cjs-legacy/stack.cjs +861 -0
  29. package/dist/cjs-legacy/trie.cjs +1172 -0
  30. package/dist/esm/binary-tree.mjs +23683 -0
  31. package/dist/esm/graph.mjs +5223 -0
  32. package/dist/esm/hash.mjs +1259 -0
  33. package/dist/esm/heap.mjs +1534 -0
  34. package/dist/esm/index.mjs +24507 -2898
  35. package/dist/esm/linked-list.mjs +4363 -0
  36. package/dist/esm/matrix.mjs +1038 -0
  37. package/dist/esm/priority-queue.mjs +1310 -0
  38. package/dist/esm/queue.mjs +4086 -0
  39. package/dist/esm/stack.mjs +859 -0
  40. package/dist/esm/trie.mjs +1170 -0
  41. package/dist/esm-legacy/binary-tree.mjs +23715 -0
  42. package/dist/esm-legacy/graph.mjs +5221 -0
  43. package/dist/esm-legacy/hash.mjs +1259 -0
  44. package/dist/esm-legacy/heap.mjs +1531 -0
  45. package/dist/esm-legacy/index.mjs +32553 -10935
  46. package/dist/esm-legacy/linked-list.mjs +4369 -0
  47. package/dist/esm-legacy/matrix.mjs +1041 -0
  48. package/dist/esm-legacy/priority-queue.mjs +1308 -0
  49. package/dist/esm-legacy/queue.mjs +4084 -0
  50. package/dist/esm-legacy/stack.mjs +859 -0
  51. package/dist/esm-legacy/trie.mjs +1169 -0
  52. package/dist/types/data-structures/base/index.d.ts +1 -0
  53. package/dist/types/data-structures/base/iterable-element-base.d.ts +1 -1
  54. package/dist/types/data-structures/base/iterable-entry-base.d.ts +8 -8
  55. package/dist/types/data-structures/base/linear-base.d.ts +3 -3
  56. package/dist/types/data-structures/binary-tree/avl-tree.d.ts +368 -51
  57. package/dist/types/data-structures/binary-tree/binary-indexed-tree.d.ts +473 -147
  58. package/dist/types/data-structures/binary-tree/binary-tree.d.ts +931 -80
  59. package/dist/types/data-structures/binary-tree/bst.d.ts +792 -29
  60. package/dist/types/data-structures/binary-tree/red-black-tree.d.ts +592 -32
  61. package/dist/types/data-structures/binary-tree/segment-tree.d.ts +320 -135
  62. package/dist/types/data-structures/binary-tree/tree-map.d.ts +3662 -6
  63. package/dist/types/data-structures/binary-tree/tree-multi-map.d.ts +3487 -201
  64. package/dist/types/data-structures/binary-tree/tree-multi-set.d.ts +2778 -65
  65. package/dist/types/data-structures/binary-tree/tree-set.d.ts +3414 -6
  66. package/dist/types/data-structures/graph/abstract-graph.d.ts +4 -4
  67. package/dist/types/data-structures/graph/directed-graph.d.ts +419 -47
  68. package/dist/types/data-structures/graph/map-graph.d.ts +59 -1
  69. package/dist/types/data-structures/graph/undirected-graph.d.ts +384 -59
  70. package/dist/types/data-structures/hash/hash-map.d.ts +462 -89
  71. package/dist/types/data-structures/heap/heap.d.ts +567 -99
  72. package/dist/types/data-structures/heap/max-heap.d.ts +46 -0
  73. package/dist/types/data-structures/heap/min-heap.d.ts +59 -0
  74. package/dist/types/data-structures/linked-list/doubly-linked-list.d.ts +631 -49
  75. package/dist/types/data-structures/linked-list/singly-linked-list.d.ts +581 -68
  76. package/dist/types/data-structures/linked-list/skip-linked-list.d.ts +775 -12
  77. package/dist/types/data-structures/matrix/matrix.d.ts +491 -0
  78. package/dist/types/data-structures/priority-queue/max-priority-queue.d.ts +57 -0
  79. package/dist/types/data-structures/priority-queue/min-priority-queue.d.ts +60 -0
  80. package/dist/types/data-structures/priority-queue/priority-queue.d.ts +60 -0
  81. package/dist/types/data-structures/queue/deque.d.ts +578 -71
  82. package/dist/types/data-structures/queue/queue.d.ts +451 -42
  83. package/dist/types/data-structures/stack/stack.d.ts +374 -32
  84. package/dist/types/data-structures/trie/trie.d.ts +458 -48
  85. package/dist/types/interfaces/graph.d.ts +1 -1
  86. package/dist/types/types/common.d.ts +2 -2
  87. package/dist/types/types/data-structures/binary-tree/segment-tree.d.ts +1 -1
  88. package/dist/types/types/data-structures/heap/heap.d.ts +1 -0
  89. package/dist/types/types/data-structures/linked-list/skip-linked-list.d.ts +1 -4
  90. package/dist/types/types/data-structures/priority-queue/priority-queue.d.ts +1 -0
  91. package/dist/types/types/utils/validate-type.d.ts +4 -4
  92. package/dist/umd/data-structure-typed.js +32432 -10808
  93. package/dist/umd/data-structure-typed.min.js +10 -4
  94. package/docs-site-docusaurus/README.md +41 -0
  95. package/docs-site-docusaurus/docs/api/README.md +52 -0
  96. package/docs-site-docusaurus/docs/api/classes/AVLTree.md +6130 -0
  97. package/docs-site-docusaurus/docs/api/classes/AVLTreeNode.md +282 -0
  98. package/docs-site-docusaurus/docs/api/classes/AbstractGraph.md +2266 -0
  99. package/docs-site-docusaurus/docs/api/classes/BST.md +5831 -0
  100. package/docs-site-docusaurus/docs/api/classes/BSTNode.md +333 -0
  101. package/docs-site-docusaurus/docs/api/classes/BinaryIndexedTree.md +455 -0
  102. package/docs-site-docusaurus/docs/api/classes/BinaryTree.md +4647 -0
  103. package/docs-site-docusaurus/docs/api/classes/BinaryTreeNode.md +331 -0
  104. package/docs-site-docusaurus/docs/api/classes/Deque.md +2767 -0
  105. package/docs-site-docusaurus/docs/api/classes/DirectedGraph.md +2999 -0
  106. package/docs-site-docusaurus/docs/api/classes/DoublyLinkedList.md +2685 -0
  107. package/docs-site-docusaurus/docs/api/classes/DoublyLinkedListNode.md +221 -0
  108. package/docs-site-docusaurus/docs/api/classes/FibonacciHeap.md +253 -0
  109. package/docs-site-docusaurus/docs/api/classes/FibonacciHeapNode.md +21 -0
  110. package/docs-site-docusaurus/docs/api/classes/HashMap.md +1333 -0
  111. package/docs-site-docusaurus/docs/api/classes/Heap.md +1881 -0
  112. package/docs-site-docusaurus/docs/api/classes/IterableElementBase.md +800 -0
  113. package/docs-site-docusaurus/docs/api/classes/IterableEntryBase.md +644 -0
  114. package/docs-site-docusaurus/docs/api/classes/LinearBase.md +1632 -0
  115. package/docs-site-docusaurus/docs/api/classes/LinearLinkedBase.md +1853 -0
  116. package/docs-site-docusaurus/docs/api/classes/LinkedHashMap.md +1108 -0
  117. package/docs-site-docusaurus/docs/api/classes/LinkedListNode.md +156 -0
  118. package/docs-site-docusaurus/docs/api/classes/LinkedListQueue.md +2824 -0
  119. package/docs-site-docusaurus/docs/api/classes/MapGraph.md +2929 -0
  120. package/docs-site-docusaurus/docs/api/classes/Matrix.md +1026 -0
  121. package/docs-site-docusaurus/docs/api/classes/MaxHeap.md +1866 -0
  122. package/docs-site-docusaurus/docs/api/classes/MaxPriorityQueue.md +1883 -0
  123. package/docs-site-docusaurus/docs/api/classes/MinHeap.md +1879 -0
  124. package/docs-site-docusaurus/docs/api/classes/MinPriorityQueue.md +1882 -0
  125. package/docs-site-docusaurus/docs/api/classes/Navigator.md +109 -0
  126. package/docs-site-docusaurus/docs/api/classes/PriorityQueue.md +1839 -0
  127. package/docs-site-docusaurus/docs/api/classes/Queue.md +2244 -0
  128. package/docs-site-docusaurus/docs/api/classes/RedBlackTree.md +6374 -0
  129. package/docs-site-docusaurus/docs/api/classes/SegmentTree.md +372 -0
  130. package/docs-site-docusaurus/docs/api/classes/SinglyLinkedList.md +2897 -0
  131. package/docs-site-docusaurus/docs/api/classes/SinglyLinkedListNode.md +169 -0
  132. package/docs-site-docusaurus/docs/api/classes/SkipList.md +1229 -0
  133. package/docs-site-docusaurus/docs/api/classes/Stack.md +1573 -0
  134. package/docs-site-docusaurus/docs/api/classes/TreeMap.md +1257 -0
  135. package/docs-site-docusaurus/docs/api/classes/TreeMultiMap.md +1475 -0
  136. package/docs-site-docusaurus/docs/api/classes/TreeSet.md +1117 -0
  137. package/docs-site-docusaurus/docs/api/classes/Trie.md +1708 -0
  138. package/docs-site-docusaurus/docs/api/classes/TrieNode.md +199 -0
  139. package/docs-site-docusaurus/docs/api/classes/UndirectedGraph.md +2979 -0
  140. package/docs-site-docusaurus/docs/guide/_category_.json +6 -0
  141. package/docs-site-docusaurus/docs/guide/architecture.md +613 -0
  142. package/docs-site-docusaurus/docs/guide/concepts.md +420 -0
  143. package/docs-site-docusaurus/docs/guide/guides.md +611 -0
  144. package/docs-site-docusaurus/docs/guide/installation.md +60 -0
  145. package/docs-site-docusaurus/docs/guide/integrations.md +823 -0
  146. package/docs-site-docusaurus/docs/guide/overview.md +638 -0
  147. package/docs-site-docusaurus/docs/guide/performance.md +833 -0
  148. package/docs-site-docusaurus/docs/guide/quick-start.md +73 -0
  149. package/docs-site-docusaurus/docusaurus.config.ts +159 -0
  150. package/docs-site-docusaurus/fix-mdx-generics.mjs +75 -0
  151. package/docs-site-docusaurus/package-lock.json +18667 -0
  152. package/docs-site-docusaurus/package.json +50 -0
  153. package/docs-site-docusaurus/prefix-class-to-methods.mjs +48 -0
  154. package/docs-site-docusaurus/sidebars.ts +23 -0
  155. package/docs-site-docusaurus/sort-protected.mjs +87 -0
  156. package/docs-site-docusaurus/src/css/custom.css +96 -0
  157. package/docs-site-docusaurus/src/pages/index.module.css +13 -0
  158. package/docs-site-docusaurus/src/pages/index.tsx +71 -0
  159. package/docs-site-docusaurus/src/pages/markdown-page.md +7 -0
  160. package/docs-site-docusaurus/src/theme/TOCItems/index.tsx +34 -0
  161. package/docs-site-docusaurus/static/.nojekyll +0 -0
  162. package/docs-site-docusaurus/static/img/docusaurus-social-card.jpg +0 -0
  163. package/docs-site-docusaurus/static/img/docusaurus.png +0 -0
  164. package/docs-site-docusaurus/static/img/favicon.ico +0 -0
  165. package/docs-site-docusaurus/static/img/favicon.png +0 -0
  166. package/docs-site-docusaurus/static/img/logo-180.png +0 -0
  167. package/docs-site-docusaurus/static/img/logo.jpg +0 -0
  168. package/docs-site-docusaurus/static/img/logo.png +0 -0
  169. package/docs-site-docusaurus/static/img/logo.svg +1 -0
  170. package/docs-site-docusaurus/static/img/og-image.png +0 -0
  171. package/docs-site-docusaurus/static/img/undraw_docusaurus_mountain.svg +171 -0
  172. package/docs-site-docusaurus/static/img/undraw_docusaurus_react.svg +170 -0
  173. package/docs-site-docusaurus/static/img/undraw_docusaurus_tree.svg +40 -0
  174. package/docs-site-docusaurus/static/robots.txt +4 -0
  175. package/docs-site-docusaurus/typedoc.json +23 -0
  176. package/package.json +109 -12
  177. package/src/data-structures/base/index.ts +1 -0
  178. package/src/data-structures/base/iterable-element-base.ts +4 -5
  179. package/src/data-structures/base/iterable-entry-base.ts +8 -8
  180. package/src/data-structures/base/linear-base.ts +3 -3
  181. package/src/data-structures/binary-tree/avl-tree.ts +386 -51
  182. package/src/data-structures/binary-tree/binary-indexed-tree.ts +596 -247
  183. package/src/data-structures/binary-tree/binary-tree.ts +956 -81
  184. package/src/data-structures/binary-tree/bst.ts +840 -35
  185. package/src/data-structures/binary-tree/red-black-tree.ts +689 -97
  186. package/src/data-structures/binary-tree/segment-tree.ts +498 -249
  187. package/src/data-structures/binary-tree/tree-map.ts +3784 -7
  188. package/src/data-structures/binary-tree/tree-multi-map.ts +3614 -211
  189. package/src/data-structures/binary-tree/tree-multi-set.ts +2874 -65
  190. package/src/data-structures/binary-tree/tree-set.ts +3531 -10
  191. package/src/data-structures/graph/abstract-graph.ts +4 -4
  192. package/src/data-structures/graph/directed-graph.ts +429 -47
  193. package/src/data-structures/graph/map-graph.ts +59 -1
  194. package/src/data-structures/graph/undirected-graph.ts +393 -59
  195. package/src/data-structures/hash/hash-map.ts +476 -92
  196. package/src/data-structures/heap/heap.ts +581 -99
  197. package/src/data-structures/heap/max-heap.ts +46 -0
  198. package/src/data-structures/heap/min-heap.ts +59 -0
  199. package/src/data-structures/linked-list/doubly-linked-list.ts +646 -47
  200. package/src/data-structures/linked-list/singly-linked-list.ts +596 -68
  201. package/src/data-structures/linked-list/skip-linked-list.ts +1067 -90
  202. package/src/data-structures/matrix/matrix.ts +584 -12
  203. package/src/data-structures/priority-queue/max-priority-queue.ts +57 -0
  204. package/src/data-structures/priority-queue/min-priority-queue.ts +60 -0
  205. package/src/data-structures/priority-queue/priority-queue.ts +60 -0
  206. package/src/data-structures/queue/deque.ts +592 -70
  207. package/src/data-structures/queue/queue.ts +463 -42
  208. package/src/data-structures/stack/stack.ts +384 -32
  209. package/src/data-structures/trie/trie.ts +470 -48
  210. package/src/interfaces/graph.ts +1 -1
  211. package/src/types/common.ts +2 -2
  212. package/src/types/data-structures/binary-tree/segment-tree.ts +1 -1
  213. package/src/types/data-structures/heap/heap.ts +1 -0
  214. package/src/types/data-structures/linked-list/skip-linked-list.ts +2 -1
  215. package/src/types/data-structures/priority-queue/priority-queue.ts +1 -0
  216. package/src/types/utils/validate-type.ts +4 -4
  217. package/vercel.json +6 -0
  218. package/dist/leetcode/avl-tree-counter.mjs +0 -2957
  219. package/dist/leetcode/avl-tree-multi-map.mjs +0 -2889
  220. package/dist/leetcode/avl-tree.mjs +0 -2720
  221. package/dist/leetcode/binary-tree.mjs +0 -1594
  222. package/dist/leetcode/bst.mjs +0 -2398
  223. package/dist/leetcode/deque.mjs +0 -683
  224. package/dist/leetcode/directed-graph.mjs +0 -1733
  225. package/dist/leetcode/doubly-linked-list.mjs +0 -709
  226. package/dist/leetcode/hash-map.mjs +0 -493
  227. package/dist/leetcode/heap.mjs +0 -542
  228. package/dist/leetcode/max-heap.mjs +0 -375
  229. package/dist/leetcode/max-priority-queue.mjs +0 -383
  230. package/dist/leetcode/min-heap.mjs +0 -363
  231. package/dist/leetcode/min-priority-queue.mjs +0 -371
  232. package/dist/leetcode/priority-queue.mjs +0 -363
  233. package/dist/leetcode/queue.mjs +0 -943
  234. package/dist/leetcode/red-black-tree.mjs +0 -2765
  235. package/dist/leetcode/singly-linked-list.mjs +0 -754
  236. package/dist/leetcode/stack.mjs +0 -217
  237. package/dist/leetcode/tree-counter.mjs +0 -3039
  238. package/dist/leetcode/tree-multi-map.mjs +0 -2913
  239. package/dist/leetcode/trie.mjs +0 -413
  240. package/dist/leetcode/undirected-graph.mjs +0 -1650
@@ -66,65 +66,6 @@ export declare class UndirectedEdge<E = number> extends AbstractEdge<E> {
66
66
  * console.log(neighborsA[0].key); // 'B';
67
67
  * console.log(neighborsA[1].key); // 'C';
68
68
  * @example
69
- * // UndirectedGraph deleteEdge and vertex operations
70
- * const graph = new UndirectedGraph<string>();
71
- *
72
- * // Build a simple undirected graph
73
- * graph.addVertex('X');
74
- * graph.addVertex('Y');
75
- * graph.addVertex('Z');
76
- * graph.addEdge('X', 'Y', 1);
77
- * graph.addEdge('Y', 'Z', 2);
78
- * graph.addEdge('X', 'Z', 3);
79
- *
80
- * // Delete an edge
81
- * graph.deleteEdge('X', 'Y');
82
- * console.log(graph.hasEdge('X', 'Y')); // false;
83
- *
84
- * // Bidirectional deletion confirmed
85
- * console.log(graph.hasEdge('Y', 'X')); // false;
86
- *
87
- * // Other edges should remain
88
- * console.log(graph.hasEdge('Y', 'Z')); // true;
89
- * console.log(graph.hasEdge('Z', 'Y')); // true;
90
- *
91
- * // Delete a vertex
92
- * graph.deleteVertex('Y');
93
- * console.log(graph.hasVertex('Y')); // false;
94
- * console.log(graph.size); // 2;
95
- * @example
96
- * // UndirectedGraph connectivity and neighbors
97
- * const graph = new UndirectedGraph<string>();
98
- *
99
- * // Build a friendship network
100
- * const people = ['Alice', 'Bob', 'Charlie', 'Diana', 'Eve'];
101
- * for (const person of people) {
102
- * graph.addVertex(person);
103
- * }
104
- *
105
- * // Add friendships (undirected edges)
106
- * graph.addEdge('Alice', 'Bob', 1);
107
- * graph.addEdge('Alice', 'Charlie', 1);
108
- * graph.addEdge('Bob', 'Diana', 1);
109
- * graph.addEdge('Charlie', 'Eve', 1);
110
- * graph.addEdge('Diana', 'Eve', 1);
111
- *
112
- * // Get friends of each person
113
- * const aliceFriends = graph.getNeighbors('Alice');
114
- * console.log(aliceFriends[0].key); // 'Bob';
115
- * console.log(aliceFriends[1].key); // 'Charlie';
116
- * console.log(aliceFriends.length); // 2;
117
- *
118
- * const dianaFriends = graph.getNeighbors('Diana');
119
- * console.log(dianaFriends[0].key); // 'Bob';
120
- * console.log(dianaFriends[1].key); // 'Eve';
121
- * console.log(dianaFriends.length); // 2;
122
- *
123
- * // Verify bidirectional friendship
124
- * const bobFriends = graph.getNeighbors('Bob');
125
- * console.log(bobFriends[0].key); // 'Alice'; // Alice -> Bob -> Alice ✓
126
- * console.log(bobFriends[1].key); // 'Diana';
127
- * @example
128
69
  * // UndirectedGraph for social network connectivity analysis
129
70
  * interface Person {
130
71
  * id: number;
@@ -233,6 +174,41 @@ export declare class UndirectedGraph<V = any, E = any, VO extends UndirectedVert
233
174
  * @param v2 - The other vertex or key.
234
175
  * @returns Edge instance or `undefined`.
235
176
  * @remarks Time O(1) avg, Space O(1)
177
+
178
+
179
+
180
+
181
+
182
+
183
+
184
+
185
+
186
+
187
+
188
+
189
+
190
+
191
+
192
+
193
+
194
+
195
+
196
+
197
+
198
+
199
+
200
+
201
+
202
+
203
+
204
+
205
+ * @example
206
+ * // Get edge between vertices
207
+ * const g = new UndirectedGraph();
208
+ * g.addVertex('A');
209
+ * g.addVertex('B');
210
+ * g.addEdge('A', 'B', 7);
211
+ * console.log(g.getEdge('A', 'B')?.weight); // 7;
236
212
  */
237
213
  getEdge(v1: VO | VertexKey | undefined, v2: VO | VertexKey | undefined): EO | undefined;
238
214
  /**
@@ -249,6 +225,64 @@ export declare class UndirectedGraph<V = any, E = any, VO extends UndirectedVert
249
225
  * @param otherSideVertexKey - Required second endpoint when deleting by pair.
250
226
  * @returns Removed edge or `undefined`.
251
227
  * @remarks Time O(1) avg, Space O(1)
228
+
229
+
230
+
231
+
232
+
233
+
234
+
235
+
236
+
237
+
238
+
239
+
240
+
241
+
242
+
243
+
244
+
245
+
246
+
247
+
248
+
249
+
250
+
251
+
252
+
253
+
254
+
255
+
256
+
257
+
258
+
259
+ * @example
260
+ * // UndirectedGraph deleteEdge and vertex operations
261
+ * const graph = new UndirectedGraph<string>();
262
+ *
263
+ * // Build a simple undirected graph
264
+ * graph.addVertex('X');
265
+ * graph.addVertex('Y');
266
+ * graph.addVertex('Z');
267
+ * graph.addEdge('X', 'Y', 1);
268
+ * graph.addEdge('Y', 'Z', 2);
269
+ * graph.addEdge('X', 'Z', 3);
270
+ *
271
+ * // Delete an edge
272
+ * graph.deleteEdge('X', 'Y');
273
+ * console.log(graph.hasEdge('X', 'Y')); // false;
274
+ *
275
+ * // Bidirectional deletion confirmed
276
+ * console.log(graph.hasEdge('Y', 'X')); // false;
277
+ *
278
+ * // Other edges should remain
279
+ * console.log(graph.hasEdge('Y', 'Z')); // true;
280
+ * console.log(graph.hasEdge('Z', 'Y')); // true;
281
+ *
282
+ * // Delete a vertex
283
+ * graph.deleteVertex('Y');
284
+ * console.log(graph.hasVertex('Y')); // false;
285
+ * console.log(graph.size); // 2;
252
286
  */
253
287
  deleteEdge(edgeOrOneSideVertexKey: EO | VertexKey, otherSideVertexKey?: VertexKey): EO | undefined;
254
288
  /**
@@ -256,6 +290,42 @@ export declare class UndirectedGraph<V = any, E = any, VO extends UndirectedVert
256
290
  * @param vertexOrKey - Vertex or key.
257
291
  * @returns `true` if removed; otherwise `false`.
258
292
  * @remarks Time O(deg), Space O(1)
293
+
294
+
295
+
296
+
297
+
298
+
299
+
300
+
301
+
302
+
303
+
304
+
305
+
306
+
307
+
308
+
309
+
310
+
311
+
312
+
313
+
314
+
315
+
316
+
317
+
318
+
319
+
320
+
321
+ * @example
322
+ * // Remove vertex and edges
323
+ * const g = new UndirectedGraph();
324
+ * g.addVertex('A');
325
+ * g.addVertex('B');
326
+ * g.addEdge('A', 'B');
327
+ * g.deleteVertex('A');
328
+ * console.log(g.hasVertex('A')); // false;
259
329
  */
260
330
  deleteVertex(vertexOrKey: VO | VertexKey): boolean;
261
331
  /**
@@ -276,8 +346,109 @@ export declare class UndirectedGraph<V = any, E = any, VO extends UndirectedVert
276
346
  * Unique set of undirected edges across endpoints.
277
347
  * @returns Array of edges.
278
348
  * @remarks Time O(E), Space O(E)
349
+
350
+
351
+
352
+
353
+
354
+
355
+
356
+
357
+
358
+
359
+
360
+
361
+
362
+
363
+
364
+
365
+
366
+
367
+
368
+
369
+
370
+
371
+
372
+
373
+
374
+
375
+
376
+
377
+ * @example
378
+ * // Get all edges
379
+ * const g = new UndirectedGraph();
380
+ * g.addVertex('A');
381
+ * g.addVertex('B');
382
+ * g.addEdge('A', 'B');
383
+ * console.log(g.edgeSet().length); // 1;
279
384
  */
280
385
  edgeSet(): EO[];
386
+ /**
387
+ * UndirectedGraph connectivity and neighbors
388
+
389
+
390
+
391
+
392
+
393
+
394
+
395
+
396
+
397
+
398
+
399
+
400
+
401
+
402
+
403
+
404
+
405
+
406
+
407
+
408
+
409
+
410
+
411
+
412
+
413
+
414
+
415
+
416
+
417
+
418
+
419
+ * @example
420
+ * // UndirectedGraph connectivity and neighbors
421
+ * const graph = new UndirectedGraph<string>();
422
+ *
423
+ * // Build a friendship network
424
+ * const people = ['Alice', 'Bob', 'Charlie', 'Diana', 'Eve'];
425
+ * for (const person of people) {
426
+ * graph.addVertex(person);
427
+ * }
428
+ *
429
+ * // Add friendships (undirected edges)
430
+ * graph.addEdge('Alice', 'Bob', 1);
431
+ * graph.addEdge('Alice', 'Charlie', 1);
432
+ * graph.addEdge('Bob', 'Diana', 1);
433
+ * graph.addEdge('Charlie', 'Eve', 1);
434
+ * graph.addEdge('Diana', 'Eve', 1);
435
+ *
436
+ * // Get friends of each person
437
+ * const aliceFriends = graph.getNeighbors('Alice');
438
+ * console.log(aliceFriends[0].key); // 'Bob';
439
+ * console.log(aliceFriends[1].key); // 'Charlie';
440
+ * console.log(aliceFriends.length); // 2;
441
+ *
442
+ * const dianaFriends = graph.getNeighbors('Diana');
443
+ * console.log(dianaFriends[0].key); // 'Bob';
444
+ * console.log(dianaFriends[1].key); // 'Eve';
445
+ * console.log(dianaFriends.length); // 2;
446
+ *
447
+ * // Verify bidirectional friendship
448
+ * const bobFriends = graph.getNeighbors('Bob');
449
+ * console.log(bobFriends[0].key); // 'Alice'; // Alice -> Bob -> Alice ✓
450
+ * console.log(bobFriends[1].key); // 'Diana';
451
+ */
281
452
  getNeighbors(vertexOrKey: VO | VertexKey): VO[];
282
453
  /**
283
454
  * Resolve an edge's two endpoints to vertex instances.
@@ -306,6 +477,44 @@ export declare class UndirectedGraph<V = any, E = any, VO extends UndirectedVert
306
477
  * Tarjan-based bridge and articulation point detection.
307
478
  * @returns `{ dfnMap, lowMap, bridges, cutVertices }`.
308
479
  * @remarks Time O(V + E), Space O(V + E)
480
+
481
+
482
+
483
+
484
+
485
+
486
+
487
+
488
+
489
+
490
+
491
+
492
+
493
+
494
+
495
+
496
+
497
+
498
+
499
+
500
+
501
+
502
+
503
+
504
+
505
+
506
+
507
+
508
+ * @example
509
+ * // Find articulation points and bridges
510
+ * const g = new UndirectedGraph();
511
+ * g.addVertex('A');
512
+ * g.addVertex('B');
513
+ * g.addVertex('C');
514
+ * g.addEdge('A', 'B');
515
+ * g.addEdge('B', 'C');
516
+ * const result = g.tarjan();
517
+ * console.log(result); // defined;
309
518
  */
310
519
  tarjan(): {
311
520
  dfnMap: Map<VO, number>;
@@ -325,18 +534,134 @@ export declare class UndirectedGraph<V = any, E = any, VO extends UndirectedVert
325
534
  * Uses DFS with parent tracking.
326
535
  * @returns `true` if a cycle exists, `false` otherwise.
327
536
  * @remarks Time O(V + E), Space O(V)
537
+
538
+
539
+
540
+
541
+
542
+
543
+
544
+
545
+
546
+
547
+
548
+
549
+
550
+
551
+
552
+
553
+
554
+
555
+
556
+
557
+
558
+
559
+
560
+
561
+
562
+
563
+
564
+
565
+ * @example
566
+ * // Detect cycle
567
+ * const g = new UndirectedGraph();
568
+ * g.addVertex('A');
569
+ * g.addVertex('B');
570
+ * g.addVertex('C');
571
+ * g.addEdge('A', 'B');
572
+ * g.addEdge('B', 'C');
573
+ * console.log(g.hasCycle()); // false;
574
+ * g.addEdge('C', 'A');
575
+ * console.log(g.hasCycle()); // true;
328
576
  */
329
577
  hasCycle(): boolean;
330
578
  /**
331
579
  * Get bridges discovered by `tarjan()`.
332
580
  * @returns Array of edges that are bridges.
333
581
  * @remarks Time O(B), Space O(1)
582
+
583
+
584
+
585
+
586
+
587
+
588
+
589
+
590
+
591
+
592
+
593
+
594
+
595
+
596
+
597
+
598
+
599
+
600
+
601
+
602
+
603
+
604
+
605
+
606
+
607
+
608
+
609
+
610
+ * @example
611
+ * // Find bridge edges
612
+ * const g = new UndirectedGraph();
613
+ * g.addVertex('A');
614
+ * g.addVertex('B');
615
+ * g.addVertex('C');
616
+ * g.addEdge('A', 'B');
617
+ * g.addEdge('B', 'C');
618
+ * const bridges = g.getBridges();
619
+ * console.log(bridges.length); // 2;
334
620
  */
335
621
  getBridges(): EO[];
336
622
  /**
337
623
  * Get articulation points discovered by `tarjan()`.
338
624
  * @returns Array of cut vertices.
339
625
  * @remarks Time O(C), Space O(1)
626
+
627
+
628
+
629
+
630
+
631
+
632
+
633
+
634
+
635
+
636
+
637
+
638
+
639
+
640
+
641
+
642
+
643
+
644
+
645
+
646
+
647
+
648
+
649
+
650
+
651
+
652
+
653
+
654
+ * @example
655
+ * // Find articulation points
656
+ * const g = new UndirectedGraph();
657
+ * g.addVertex('A');
658
+ * g.addVertex('B');
659
+ * g.addVertex('C');
660
+ * g.addEdge('A', 'B');
661
+ * g.addEdge('B', 'C');
662
+ * const cuts = g.getCutVertices();
663
+ * console.log(cuts.length); // 1;
664
+ * console.log(cuts[0].key); // 'B';
340
665
  */
341
666
  getCutVertices(): VO[];
342
667
  /**