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
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
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
60a3154178
refactor: Differentiate between type imports and regular object imports.
2023-12-11 14:14:46 +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
1fc47918d2
refactor: Add an isNotNodeInstance method to every binary tree data structure to prevent node type errors. The getSuccessor method of Red-Black trees uniformly utilizes the getSuccessor method from BinaryTree.
2023-12-11 09:02:26 +08:00
Revone
26208e9157
release: 1.48.9
2023-12-08 20:03:48 +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
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
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
7ddad8eb65
docs: add methods for Binary Tree data structures
2023-12-07 09:21:56 +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
785e92a87f
release: 1.48.3
2023-12-04 22:05:15 +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
e1e672b3b5
refactor: Extract the isNode and exemplarToNode methods to achieve best practices.
2023-11-27 13:38: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
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
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
982152abc0
fix: type fixed
2023-11-25 22:33:38 +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
cd14ec79ec
refactor: Use a type BTNExemplar to simplify the method parameters of binary tree data structures.
2023-11-24 09:58:10 +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
3205f90cf6
docs: Reorganize some content in the README
2023-11-22 19:00:06 +08:00
Revone
b53156fb48
fix: createTree return type check
2023-11-22 17:37:43 +08:00
Revone
edbbf4a951
fix: type check for 'typeof this' is not supported in TS 4.9.5
2023-11-22 17:31:51 +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
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
d3a6bdac25
fix: type error fixed. docs: Remove unnecessary 'Software Engineering Design Standards'.
2023-11-20 15:14:13 +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
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
6f74397f8d
fix: Iterator supports function length or function size
2023-11-19 09:04:48 +08:00
Revone
5c6803b1a9
docs: Deque docs enriched, big o notations
2023-11-19 08:56:37 +08:00
Revone
a4a35731d2
fix: Deque delete param correctly used
2023-11-17 22:43:12 +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
a3f4508281
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:11:50 +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
a1cfac93da
test: Testing coverage has increased to 91.2%.
2023-11-10 23:44:24 +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
d3a56a5c7a
docs: Adding time and space complexity comments to all Binary Tree data structures.
2023-11-10 13:32:18 +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
28207b6d45
perf: Unified all APIs, all parameters that accept node types can also accept node keys as parameters.
2023-11-09 17:47:02 +08:00
Revone
50d1a168e7
[perf] renamed tree-multiset to tree-multimap
2023-11-08 09:26:43 +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
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
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
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
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
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
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
ea3ab1283e
[rbtree] extracted RBTNColor to types
2023-11-01 11:52:44 +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