Commit graph

113 commits

Author SHA1 Message Date
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
a1cfac93da test: Testing coverage has increased to 91.2%. 2023-11-10 23:44: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
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
5af93dda72 [benchmark] Determine the order of magnitude for most performance tests. Report metric reductions. 2023-11-04 17:28:52 +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
Revone
ed7ead3744 [rbtree] The first successful implementation of Red-Black Tree. 2023-10-31 22:31:56 +08:00
Revone
822b918d8b [binary-tree] type errors fixed 2023-10-31 12:01:10 +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
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
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
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
edad774263 [project] IDE formated 2023-10-27 18:07:40 +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
af23af911a [binary-tree] renamed _loopType to _iterationType 2023-10-27 17:17:27 +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
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
Revone
6c9578368c [binary-tree] Add an 'iterationType' parameter to all methods compatible with both recursion and iteration, allowing for specifying a particular iteration method in each method. 2023-10-24 00:03:48 +08:00
Revone
3983ab089c [binary-tree] Each method that traverses based on the root node can specify any node within the tree as the root node. 2023-10-23 22:36:49 +08:00
Revone
48e94f29ed [binary-tree] Update the testing API to the new version. 2023-10-23 21:22:07 +08:00
Revone
0417ee5009 [binary-tree] Translate all traversal methods into callback function forms to enhance API convenience and readability. 2023-10-23 03:02:12 +08:00