Revone
f8832a04c0
refactor: Constrain the getter size() from the base class. Refactor some inappropriate performance tests.
...
feat: Add sorting capability to performance test reports.
2024-01-09 15:57:30 +08:00
Revone
4747839d88
Refactor: Standardize addition and removal methods for all sequential data structures to push, pop, shift, unshift.
2024-01-09 12:04:50 +08:00
Revone
465744c2ec
feat: Replace the AVLTree with a Red-Black Tree to implement TreeMultiMap, preserving the implementation of TreeMultiMap using AVLTree and renaming it as AVLTreeMultiMap.
2024-01-08 22:22:41 +08:00
Revone
a95567b3c4
release: 1.50.3
2024-01-07 22:32:39 +08:00
Revone
5c9f4fd483
fix : #74 . Refactor: Implement the Tarjan algorithm separately for DirectedGraph and UndirectedGraph. In the previous design, the tarjan method was placed in the AbstractGraph class. However, Tarjan algorithm is used to find connected components in directed graphs and to solve bridges, articulation points, determine the presence of cycles (though not all), and biconnected components in undirected graphs. The algorithm for finding all cycles in the graph can be shared between directed and undirected graphs using the getCycles method.
2024-01-07 22:25:25 +08:00
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
ba16f311c3
Refactor: Organize the access permissions of all member variables. Docs: Partial documentation for time and space complexity.
2024-01-05 15:37:28 +08:00
Revone
eaf8912746
docs: Verify the time and space complexity for each method.
...
feat: Add the cutRest method to Deque.
refactor: Update the cut method in Deque to support the isCutSelf parameter.
2024-01-04 16:28:17 +08:00
zrwusa
ce6440bfa2
Merge pull request #69 from Oaz/main
...
Tests for DirectedGraph.tarjan
2024-01-03 16:01:43 +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
Olivier Azeau
ba6b666b44
Merge branch 'zrwusa:main' into main
2024-01-02 08:46:30 +01:00
Olivier Azeau
b965ec22db
added tests for DirectedGraph.tarjan
2024-01-02 08:45:55 +01:00
Revone
831ad3bd98
refactor: rename method 'getAt' to 'at'
2023-12-30 20:36:11 +08:00
Revone
ff8f907192
feat: In the IterableEntryBase and IterableElementBase classes, add find, get, and has methods so that all inheriting data structures can have access to these methods. Also, override these methods in the necessary data structures as needed.
2023-12-30 18:44:24 +08:00
Revone
ec649bd8bb
test: reorgnization. docs: improved a lit bit
2023-12-30 11:49:59 +08:00
Revone
a9c556fce3
docs:Sequential Organization
2023-12-29 16:42:20 +08:00
Revone
baf1be4035
release: 1.50.0. docs: traversal methods
2023-12-29 11:24:25 +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
eb590d6c27
feat: Remove support for the 'variant' option parameter in Red-Black Tree, meaning no support for reverse Red-Black Tree.
...
fix: Fix bug in the return value of the Red-Black Tree delete method.
test: Test the clone methods of all the binary tree data structures.
2023-12-25 10:56:04 +08:00
Revone
c949b5b741
refactor: Rearrange constructor parameters for all data structures, with the first parameter being the output and the second parameter being a configuration object. Make all configuration object properties optional.
...
fix: Provide optional parameters for inheritable data structures to facilitate inheritance. #64
2023-12-24 17:44:55 +08:00
Revone
d57d6072c2
fix: Fix bug in BST.isBST to make it compatible with inverse BST.
...
refactor: Use KeyOrNodeOrEntry as the parameter type consistently in the binary tree data structure.
test: Remove unnecessary performance reports and refactor loop code to use single lines wherever possible.
2023-12-23 11:53:18 +08:00
Revone
677340e99c
refactor: Remove isSubtreeBST; using isBST alone is sufficient. Update BSTVariant to use STANDARD and INVERSE instead of MIN and MAX.
...
feat: Enhance isBST to support the detection of inverse binary search trees.
2023-12-23 09:41:04 +08:00
Revone
2247316d16
refactor: Remove the _addTo method from BinaryTree and TreeMultiMap.
...
feat: Reimplement Matrix.
docs: Use typedoc.json configuration to only output class documentation.
2023-12-22 19:59:38 +08:00
Revone
dc6ef95f78
style: code base reformat
2023-12-21 10:26:45 +08:00
Revone
bc000105d8
release: 1.49.4
2023-12-21 10:08:59 +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
3e97e806ba
refactor: Unify the return types of all methods and align them with Java, extract the print and hasValue methods to base class. This will make the code more consistent and easier to understand.
2023-12-12 21:14:17 +08:00
Revone
61369adbdd
test: Refine the test cases.
2023-12-12 10:13:34 +08:00
Revone
4d88405ac1
release: 1.49.1
2023-12-12 10:05:36 +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
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
93201bddba
perf: The add method of BinaryTree doesn't need to check for existence first, it can detect and add in a single traversal. Feat: Discard the ObjectDeque data structure. test: Increased test coverage for Deque and Queue.
2023-12-08 19:54:13 +08:00
Revone
c3b79b70f6
docs: Add a GITHUB stars badge. Adjust the order of the table. Test: Specify the type of binary tree constructor.
2023-12-08 10:07:51 +08:00
Revone
a02a9a94d2
refactor: Rewrite the lastKey method. The BinaryTree.add method filters out duplicate additions. Rename popLast and popFirst to pollLast and pollFirst.
2023-12-07 19:34:20 +08:00
Revone
aff29b3568
docs: Why use our data structures.
2023-12-07 15:37:50 +08:00
Revone
d038e03ef2
docs: Chinese version README.md
2023-12-07 14:03:58 +08:00
Revone
a0a9ed2f50
docs: Chinese version README.md
2023-12-07 11:40:01 +08:00
Revone
1c8324147f
feat: The addMany method in binary tree data structures supports both addMany(keys, values) and addMany(entries).
2023-12-07 10:19:17 +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
8a24a6d7a4
refactor: The binary tree data structure supports custom types for keys
2023-12-04 21:58:41 +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
87ea490458
feat: print method has been added in HashMap. chore: reformated HashMap test. docs: high-performance HashMap benchmark
2023-11-30 10:20:12 +08:00
Revone
65949b7d19
feat: Reimplement a more efficient HashMap and correctly rename the original HashMap as LinkedHashMap.
2023-11-30 09:59:01 +08:00
Revone
9a9571431c
feat: Add keys, values, and clone methods to all binary tree data structures.
2023-11-27 18:01:59 +08:00
Revone
fe0e390b2b
fix: ci type error fixed
2023-11-27 13:59:26 +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
a71b223226
docs: Add print results for free conversion between data structures.
2023-11-27 10:12:15 +08:00
Revone
6694f98e67
refactor: In SegmentTree data structure, only use 'undefined' and abandon the design where both 'null' and 'undefined' coexist.
2023-11-27 09:42:49 +08:00
Revone
86200435e8
refactor: In Stack data structures, only use 'undefined' and abandon the design where both 'null' and 'undefined' coexist.
2023-11-27 09:38:03 +08:00
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