Revone
e91970c09f
refactor: Directly constrain the methods clear, map, and filter in the base class.
...
feat: Implement the clear method in DirectedGraph, UndirectedGraph, and Trie.
docs: Add SPECIFICATION.md, SPONSOR.md, and SPONSOR_zh-CN.md. Adjust badge order and add a new contributor count badge.
2024-01-06 17:50:00 +08:00
Revone
ecf4d6ad11
fix: Fix bug #71 .
...
feat: Define abstract methods through a base class to add clone and isEmpty methods to all data structures. Add delete and deleteAt methods to Deque, Queue, and Stack data structures.
refactor: Optimize the type definition N to NODE for alignment with the design of TREE.
2024-01-03 15:52:10 +08:00
Revone
34d4abd9e6
fix : #38 Removed includeNull parameter from traversal methods.
...
feat: Removed unnecessary methods isNotNodeInstance and subTreeTraverse.
refactor: Organized the overloads of traversal methods.
2023-12-29 11:15:19 +08:00
Revone
689aa0f57e
feat: Provide convenient option of the raw data processing function 'toEntry' in HashMap.options.
2023-12-25 20:24:41 +08:00
Revone
dc6ef95f78
style: code base reformat
2023-12-21 10:26:45 +08:00
Revone
c3db558607
Refactor: The default callback function now supports returning values for null and undefined nodes with undefined keys. The deleteVertex method in AbstractGraph has been made abstract. Unnecessary magnitude variables have been removed from the magnitude function. fix: In directed and undirected graphs, the deleteVertex method now removes edges from adjacent nodes when deleting a vertex.
2023-12-21 10:01:04 +08:00
Revone
bbfa64fc64
fix: Fix the bug in the getCycles method. refactor: Rename some variables.
2023-12-19 12:15:44 +08:00
Revone
e113a99b26
fix: bug fixed #58 , DirectedGraph.getCycles returns an inexisting cycle. feat: hasValue method for HashMap.
2023-12-12 09:57:30 +08:00
Revone
f0927e8b0a
docs: Wrote a feature description for each data structure. refactor: Standardize the import of all types and objects
2023-12-11 20:27:05 +08:00
Revone
9d4228c9fe
refactor: Represent the optional parameters in the dijkstraWithoutHeap and dijkstra methods using default arguments. Use the Heap data structure instead of PriorityQueue.
2023-12-11 09:41:24 +08:00
Revone
1b1d5c6669
feat: The add method of the binary tree is compatible with the multi-parameter mode of add(key, value), and it is also compatible with the entry method.
2023-12-07 09:16:25 +08:00
Revone
f56542a07a
refactor: renamed variables
2023-12-06 11:32:04 +08:00
Revone
ce99f7988e
release: 1.48.4
2023-12-06 10:42:12 +08:00
Revone
6cc250606b
fix: bug fix for #51 . Removing a vertex from a DirectedGraph doesn't remove it's edges
2023-12-06 10:36:00 +08:00
Revone
241cb26a6f
fix: bug fix for #52
2023-12-06 09:18:23 +08:00
Revone
7f5eb6cb70
refactor: Extract all methods such as 'some', 'every', 'entries', 'keys', 'values', 'forEach', 'reduce' into the base classes 'IterableElementBase' and 'IterablePairBase'.
2023-12-02 22:15:18 +08:00
Revone
20550fb718
feat: Implement the [Symbol.iterator], forEach, filter, map, and reduce methods for Graph, specifically targeting the nodes. fix: type error fixed
2023-11-27 11:24:23 +08:00
Revone
f3df66eef3
refactor: In Graph data structures, only use 'undefined' and abandon the design where both 'null' and 'undefined' coexist.
2023-11-26 20:11:29 +08:00
Revone
8f9eb82bfd
feat: To support conversion between data structures, Heap, PriorityQueue, Queue, Deque, SinglyLinkedList, DoublyLinkedList, and Stack have all added an 'elements' parameter for initializing the elements of the data structure.
2023-11-23 18:40:30 +08:00
Revone
be6ad5473b
style: Change ESLint configuration from error type to warning type. Format the code.
2023-11-16 11:55:40 +08:00
Revone
dd2701dab7
style: reformated codebase
2023-11-16 10:14:14 +08:00
Revone
8f1f6d6f52
style: Try to synchronize Prettier with the coding style of the IDE.
2023-11-13 22:27:29 +08:00
Revone
1064ad4a58
style: reformat code with IDE
2023-11-13 13:07:28 +08:00
Revone
fd416c5d6e
docs: Almost all methods of data structures have added comments on time and space complexity.
2023-11-10 16:24:24 +08:00
Revone
8a518f95b7
[project] codebase reformated
2023-11-06 19:44:01 +08:00
Revone
25b9e1e9e4
[graph] To facilitate users who are not familiar with the Tarjan algorithm, provide the following methods: getCycles, getSCCs, getBridges, getCutVertexes, getDFNMap, and getLowMap.
2023-11-06 14:47:00 +08:00
Revone
a85ea70cee
[pkg] v1.41.9 published
2023-11-04 21:31:15 +08:00
Revone
62e55b84bd
[graph] The getAllPathsBetween method in the [graph] provides a 'limit' parameter to control this exponential time complexity method from entering into a deadlock state. The getMinPathsBetween method, by default, calls the Dijkstra method to avoid invoking the excessively high time complexity method, getAllPathsBetween.
2023-11-04 21:23:02 +08:00
Revone
025a90a145
[graph] use 'Set' in dfs instead of 'Map'
2023-11-04 15:47:24 +08:00
Revone
c82190764e
[rbtree, binary-tree] Further testing of the Red-Black Tree is required. The 'get' method in BinaryTree should be renamed to 'getNode,' and an additional 'get' method should be added.
2023-11-01 13:48:01 +08:00
Revone
8712bbd3c9
[core] All data structures have had their member variables access control optimized.
2023-10-31 11:15:39 +08:00
Revone
121516f303
[core] Rename all 'val' variables to 'value'.
2023-10-30 20:27:08 +08:00
Revone
fcec29f32c
[graph test] edge cases enriched
2023-10-30 20:08:25 +08:00
Revone
d44788bea9
[graph] Modify the data structure design of the graph to change the generics of Vertex and Edge to defaults, where it is possible to only pass the value types of Vertex and Edge for increased usability.
2023-10-30 18:27:58 +08:00
Revone
bf5b865e2c
[binary-tree] bug fix#27
2023-10-30 11:14:41 +08:00
Revone
f87e682f26
[test] test coverage enriched to 90.37%
2023-10-29 21:52:27 +08:00
Revone
bd1720973a
[test] Increase the test coverage to 89.51.
2023-10-28 23:54:27 +08:00
Revone
6c45f53f72
[heap, priority-queue, binary-indexed-tree] Heap and PriorityQueue constructors use a single object as a parameter for uniformity with the design of other data structures.
...
Binary Indexed Tree includes the getPrefixSum method.
2023-10-28 17:37:51 +08:00
Revone
c11cc4527b
[graph] The removal method in the graph data structure is standardized to 'delete'
2023-10-28 15:58:48 +08:00
Revone
af23af911a
[binary-tree] renamed _loopType to _iterationType
2023-10-27 17:17:27 +08:00
Revone
8df45c5c52
[binary-tree] Dynamically infer traversal method return values based on callback function results.
2023-10-25 21:09:11 +08:00
Revone
e45854d3f4
[project] Optimize the build configuration to be compatible with both earlier and later versions of Node.js. Switch to using tsup for UMD module output. Format code using an IDE.
2023-10-25 15:51:50 +08:00
Revone
3a86a5c37d
[binary-tree, graph] Replace all code that uses Arrays as makeshift Queues with actual Queues to improve efficiency. [binary-tree] Remove most methods for calculating sums and modifying properties, adopting a generic callback-based design. [bst] Enable default batch addition in BST using sorted binary insertion to maintain tree balance as much as possible.
2023-10-21 23:56:14 +08:00
Revone
9764f2a5c6
[binary-tree, graph] In order to optimize the design of Binary Trees, unnecessary abstract classe removed, while enforcing method constraints between base classes and subclasses through interfaces. For Graph, it is necessary to use an abstract class as the base class, and interface constraints should be applied. Any data structures that are not within the scope of the plan deleted.
2023-10-17 21:06:41 +08:00
Kirk Qi
dd7b641273
[heap, priority queue] Heap improved. References #123 : redesigned
2023-10-15 22:09:26 +08:00
Revone
f08819eb83
[core] In order to adhere to best practices, rename the DFS method and the BFS method as dfs and bfs.
2023-10-10 22:15:01 +08:00
Revone
3bffa7320c
[core] rename id to key
2023-10-10 20:13:47 +08:00
Revone
45c49c99bf
[core] renamed id to key
2023-10-10 19:55:52 +08:00
Revone
bd25485555
[project] generic naming standardized
2023-09-26 13:50:40 +08:00
Revone
ea8f993a4a
[prettier] bracket spacing false
2023-09-22 10:43:16 +08:00