Revone
|
e89509eb34
|
refactor: In Linked List data structures, only use 'undefined' and abandon the design where both 'null' and 'undefined' coexist.
|
2023-11-27 09:31:11 +08:00 |
|
Revone
|
7da4f8add9
|
fix: In Graph data structures, only use 'undefined' and abandon the design where both 'null' and 'undefined' coexist.
|
2023-11-26 20:13:34 +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
|
3dc0454c24
|
docs: Integration tests and documentation for free conversion between data structures.
|
2023-11-25 22:49:54 +08:00 |
|
Revone
|
f9f9df81f5
|
feat: Perfectly implement fast conversion between data structures. Implement a getter size for Trie. docs: Add comments to the 'add' and 'addMany' methods of all binary tree data structures.
|
2023-11-25 22:32:09 +08:00 |
|
Revone
|
76db084bda
|
refactor: Explicitly call the super.addMany method. chore: reformat project configs
|
2023-11-25 20:59:34 +08:00 |
|
Revone
|
b099b759e8
|
refactor: The strategy of all binary tree data structures is to replace a node only when the same node is added.
|
2023-11-25 20:40:11 +08:00 |
|
Revone
|
18b895cb4c
|
refactor: The parameters for the add and addMany methods in all binary tree data structures have been changed to the entry style, and the first test has passed.
|
2023-11-25 14:38:32 +08:00 |
|
Revone
|
451f6c5e31
|
release: 1.47.6
|
2023-11-24 08:49:18 +08:00 |
|
Revone
|
4930f87bcd
|
feat: Add an 'elements' parameter to the constructors of all binary tree data structures to accept Iterable types.
|
2023-11-23 21:43:45 +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
|
5cf88d098e
|
feat: All data structures except Graph have implemented *[Symbol.iterator], forEach, filter, map, reduce methods.
|
2023-11-23 13:19:13 +08:00 |
|
Revone
|
9a430fdbc6
|
docs: Binary Tree print method
|
2023-11-22 21:29:44 +08:00 |
|
Revone
|
a41e222481
|
feat: Implement forEach, filter, map, reduce, and [Symbol.iterator] methods for all binary tree data structures
|
2023-11-22 17:18:37 +08:00 |
|
Revone
|
01b969edca
|
refactor: rename NIL of RedBlackTree to Sentinel
|
2023-11-21 17:44:22 +08:00 |
|
Revone
|
54c74f9af6
|
feat: The print method supports switches for empty nodes and guardian nodes. refactor: It eliminates some unnecessary type definitions.
|
2023-11-21 17:30:57 +08:00 |
|
Revone
|
7e3aeb8d2a
|
chore: reformat codebase
|
2023-11-20 19:27:25 +08:00 |
|
Revone
|
d6e186a884
|
chore: To avoid sacrificing performance, UMD modules use ES6 style.
|
2023-11-20 19:24:53 +08:00 |
|
Revone
|
92552da31c
|
fix: binary tree print bug fixed. test: integration test of rb-tree
|
2023-11-20 17:30:55 +08:00 |
|
Revone
|
5eaf1d6aab
|
fix: Ignore inserting the duplicate into RedBlackTree. refactor: renamed the helpers to common
|
2023-11-20 16:15:49 +08:00 |
|
Revone
|
7c6e5d3b1c
|
refactor: HashMap supports custom hash functions.
|
2023-11-20 13:03:39 +08:00 |
|
Revone
|
1e2013df5e
|
refactor: Eliminate unnecessary data structures. test: Add performance comparison tests with native Map and Set.
|
2023-11-20 09:51:34 +08:00 |
|
Revone
|
b7357def44
|
test: HashMap test case conducted on million data
|
2023-11-19 21:30:17 +08:00 |
|
Revone
|
cbf1d05064
|
refacor: If individual performance test, not to replace content in README.md
|
2023-11-19 21:26:04 +08:00 |
|
Revone
|
b4e89d9f72
|
refactor: Discard the unnecessary Iterator class in Deque and HashMap, and instead implement using Generators.
|
2023-11-19 21:09:44 +08:00 |
|
Revone
|
b089cf47b3
|
refactor: In the Deque data structure, abandon the Iterator class and implement using a Generator instead.
|
2023-11-19 20:48:53 +08:00 |
|
Revone
|
2634c99388
|
feat: high-performance Deque implemented
|
2023-11-17 22:37:35 +08:00 |
|
Revone
|
d761e79e4d
|
fix: Bug fix for 'resize', 'insertAt', and 'deleteAt'.
|
2023-11-17 18:44:14 +08:00 |
|
Revone
|
e7be7b559d
|
feat: Implemented Deque independently and conducted performance tests, and eliminated the redundant data structure ArrayDeque. Add performance test cases for DoublyLinkedList.
|
2023-11-17 16:11:31 +08:00 |
|
Revone
|
fa92ddfdaa
|
perf: Implemented a high-performance Heap. docs: Software Engineering Standard Form.
|
2023-11-17 10:47:13 +08:00 |
|
Revone
|
2b7bf3ce95
|
feat: The performance report generator supports parameter filtering commands, which can be used to run specific tests individually. It generates individual performance comparison reports. Enrich the COMMANDS.md document.
|
2023-11-16 21:08:57 +08:00 |
|
Revone
|
f9b6f313c6
|
feat: The performance report generator supports parameter filtering commands, which can be used to run specific tests individually. It generates individual performance comparison reports. Enrich the COMMANDS.md document.
|
2023-11-16 21:07:00 +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
|
bac0964ac2
|
fix: Implemented a high-performance HashMap comparable to the native Map. All test cases are standardized using 'it' instead of 'test'. Enabled tsconfig's sourceMap configuration for correct line numbers in IDE testing.
|
2023-11-15 23:17:55 +08:00 |
|
Revone
|
d71a1eb2bc
|
fix: Removed unused enums. style: Beautified text color output of the performance report generator console.
|
2023-11-14 21:41:20 +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
|
55ddc661eb
|
test: Compare performance with other libraries.
|
2023-11-13 12:50:33 +08:00 |
|
Revone
|
649101ebe0
|
release: v 1.43.1
|
2023-11-13 00:03:42 +08:00 |
|
Revone
|
c985317259
|
test: Added a switch to control whether to test the performance of competitors.
|
2023-11-11 09:59:11 +08:00 |
|
Revone
|
7bcb0ba843
|
test: Competitor Performance Comparison Test
|
2023-11-11 00:17:50 +08:00 |
|
Revone
|
a1cfac93da
|
test: Testing coverage has increased to 91.2%.
|
2023-11-10 23:44:24 +08:00 |
|
Revone
|
cef8b04a9f
|
chore: Add comments for the time and space complexity of all methods for the BinaryTree.
|
2023-11-10 11:01:49 +08:00 |
|
Revone
|
c2c7011e15
|
refactor: Unified API parameters, streamline syntax, exclude methods already present in the parent class.
|
2023-11-09 20:25:54 +08:00 |
|
Revone
|
000efa749d
|
docs: Conventional Commits of CONTRIBUTING.md, Built-in classic algorithms enriched
|
2023-11-08 20:25:02 +08:00 |
|
Revone
|
50d1a168e7
|
[perf] renamed tree-multiset to tree-multimap
|
2023-11-08 09:26:43 +08:00 |
|
Revone
|
c509a2d640
|
[test] trying to test RedBlackTree
|
2023-11-07 20:08:16 +08:00 |
|
Revone
|
57a95e94db
|
[rb-tree] The red-black tree has been perfectly implemented and inherits from a BST. It has also passed a certain level of testing. [binary-tree] All traversal methods are compatible with sentinel nodes in the red-black tree.
|
2023-11-07 19:57:35 +08:00 |
|
Revone
|
b78d92fcd1
|
[binary-tree] Move the print method inside BinaryTree. [rb-tree] Replace sentinel nodes with NaN. [bst] Replace all direct assignments to _root with calls to the _setRoot method.
|
2023-11-07 17:41:51 +08:00 |
|
Revone
|
ea89c0278b
|
[rb-tree] RedBlackTree has inherited from BST and implemented it perfectly.
|
2023-11-07 17:02:35 +08:00 |
|
Revone
|
120b5e6bc2
|
[rb-tree] Change the default type of home nodes to 'undefined' and pass the test of adding and deleting 100,000 data records.
|
2023-11-07 16:27:24 +08:00 |
|
Revone
|
996fd128ed
|
[binary-tree] Perfectly solved the null problem, in BST, AVLTree, and TreeMultiset, only 'undefined' is used as the empty node.
|
2023-11-07 12:26:16 +08:00 |
|
Revone
|
8a518f95b7
|
[project] codebase reformated
|
2023-11-06 19:44:01 +08:00 |
|
Revone
|
be38422de9
|
[test] null should be ignored in travesal method in BST
|
2023-11-06 19:36:09 +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
|
f15792c529
|
[project] tables optimization of README.md
|
2023-11-06 11:01:32 +08:00 |
|
Revone
|
d6b394446a
|
[binary-tree] All traversal methods offer an includeNull parameter to support the output of null nodes.
|
2023-11-05 21:19:59 +08:00 |
|
Revone
|
3596ca53a7
|
[graph] test case refined
|
2023-11-04 21:37:41 +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
|
5af93dda72
|
[benchmark] Determine the order of magnitude for most performance tests. Report metric reductions.
|
2023-11-04 17:28:52 +08:00 |
|
Revone
|
025a90a145
|
[graph] use 'Set' in dfs instead of 'Map'
|
2023-11-04 15:47:24 +08:00 |
|
Revone
|
0ecc163944
|
[project] Replace the performance test report in README.md every time instead of inserting incrementally.
|
2023-11-04 10:19:09 +08:00 |
|
Revone
|
24a961f692
|
[BST, AVL] The 'get' method follows the binary search of a BST for bug fixes during queries. [Project] The editor uses 'tsconfig.json' for code checking to be compatible with the 'test' directory, but compiles using their respective configuration files.
|
2023-11-04 10:00:51 +08:00 |
|
Revone
|
bd2ecc5699
|
[benchmark] enriched the utils of performance test. enriched the performance test cases
|
2023-11-04 01:21:30 +08:00 |
|
Revone
|
4614773413
|
[binary-tree] Merge the operation of modifying the value into the insert query process to improve performance. [benchmark] Enhance performance test cases and move existing performance tests from unit tests to the 'performance' section. Improve the benchmark test report. Refine the logic of the report generator.
|
2023-11-02 21:38:10 +08:00 |
|
Revone
|
9a87fe13b6
|
[benchmark] beautiful report
|
2023-11-02 16:10:41 +08:00 |
|
Revone
|
f0777567f2
|
[project] remove the unnecessary pkg underscore
|
2023-11-02 11:57:20 +08:00 |
|
Revone
|
ca013f019f
|
[benchmark] pretty html report for benchmark test
|
2023-11-02 11:38:29 +08:00 |
|
Revone
|
9f2f0fca29
|
[benchmark] generated a performance testing report.
|
2023-11-02 09:24:06 +08:00 |
|
Revone
|
68aa49f9b1
|
[project] Decouple integration testing from the CI workflow.
|
2023-11-01 18:19:49 +08:00 |
|
Revone
|
e9f2359365
|
[binary-tree] Let the get method call getNode instead of getNodes. [rbtree] Use rigorous testing to verify that the properties of nodes in a red-black tree adhere to the red-black tree rules after insertion and deletion.
|
2023-11-01 17:51:38 +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
|
82168eb4a2
|
[rbtree] Currently, the insertion and deletion of 1000 data entries are supported. However, when the data volume increases to 10000 entries, null value issues are bound to arise due to repetitive deletions and additions.
|
2023-10-31 23:21:54 +08:00 |
|
Revone
|
ed7ead3744
|
[rbtree] The first successful implementation of Red-Black Tree.
|
2023-10-31 22:31:56 +08:00 |
|
Revone
|
10bbcffcef
|
[pkg] v1.40.0 published
|
2023-10-31 11:22:21 +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
|
1ec5a19172
|
[core] Besides Binary Trees and Graphs, access control optimizations have been applied to member variables.
|
2023-10-31 10:34:41 +08:00 |
|
Revone
|
3009c14c24
|
[queue] Added some alias methods.
|
2023-10-31 09:03:06 +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
|
c001251cfc
|
[binary-tree] this._defaultCallbackByKey deprecated
|
2023-10-30 11:40:03 +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
|
c492af0461
|
[linked-list] Standardize the method names of DoublyLinkedList and SinglyLinkedList.
|
2023-10-29 16:43:19 +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
|
f8e0607b25
|
[trie] The Trie's getWords method now offers an optional parameter to retrieve all words in case of an empty string input.
|
2023-10-28 15:50:42 +08:00 |
|
Revone
|
f90afe0b57
|
[binary-tree] The binary tree's BFS and level-order traversal results should be the same. However, for convenience, we provide an additional method called listLevels to display traversal results in levels.
|
2023-10-27 22:30:52 +08:00 |
|
Revone
|
06dc8bdc4d
|
[binary-tree] Change the design so that when instantiating the BinaryTree data structure, there's no need to specify the node type; instead, use the second default generic parameter and its default value.
|
2023-10-27 18:04:31 +08:00 |
|
Revone
|
f2d3be7574
|
[binary-tree] Translate the return value type inference for methods that take a callback function as a parameter.
|
2023-10-26 20:26:06 +08:00 |
|
Revone
|
31c228668e
|
[optimization] allow all list datatype delete methods to accept null as an input argument
|
2023-10-26 16:45:08 +08:00 |
|
Revone
|
23cbdbabca
|
[binary-tree] bfs simplified
|
2023-10-25 21:11:11 +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
|
063b702236
|
[project] Achieve a rational subpackage structure that enables individual subpackages to be independently exportable.
|
2023-10-25 11:19:03 +08:00 |
|
Revone
|
c8f0e23704
|
[project] Ensure the type files in the "types" directory match those in the "src" directory.
|
2023-10-25 09:57:04 +08:00 |
|
Revone
|
74d4294320
|
[binary-tree] Provide comprehensive JSDoc comments for the enhanced APIs.
|
2023-10-24 09:25:33 +08:00 |
|