Commit graph

123 commits

Author SHA1 Message Date
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 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 31c228668e [optimization] allow all list datatype delete methods to accept null as an input argument 2023-10-26 16:45:08 +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
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 a6329163f7 1. No need for dfsIterative; integrate it directly into the dfs method. 2. Allow for public configuration of setLoopType. 3. Replace subTreeAdd with subTreeForeach for improved clarity and flexibility; provide a callback for enhanced versatility. 4. Standardize the naming of certain methods and parameters. 2023-10-21 20:03:54 +08:00
Revone 961e4e5f8c [heap] fibonacci heap implemented. [test] big O estimate. [project] no-unused-vars config to warn 2023-10-21 01:59:10 +08:00
Revone 4fa0816223 [core] Shared Comparator and DFSOrderPattern among multiple data structures. ESLint config improved 2023-10-20 11:43:26 +08:00
Revone 2953ec61af [git] Overwrite the rbtree branch based on the old version of the main branch 2023-10-19 09:42:24 +08:00
zrwusa a0c9c17345
Merge branch 'main' into rbtree 2023-10-19 09:29:01 +08:00
Revone 08afafe693 [trie] renamed ambiguous methods and add comments to all methods. 2023-10-18 18:54:33 +08:00
Revone 47fcfabae7 [binarytree] modified the getDepth method to adhere to the proper definition of "tree depth." 2023-10-18 18:28:36 +08:00
Revone fb52440469 [trie] variable renamed 2023-10-18 17:31:01 +08:00
Revone 9cf303edd4 Merge branch 'main' into trie 2023-10-18 17:11:30 +08:00
Revone 07825744f4 [tree] getHeight returns faulty height bug fixed 2023-10-18 17:07:27 +08:00
Revone 1627b633bd [trie] getHeight returns faulty height bug fixed. Variables renamed for best practice 2023-10-18 17:05:38 +08:00
Revone 36153238b7 [trie] support casesensitivity. getWords bug fixed 2023-10-18 14:57:47 +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
Revone 727cc87ca5 [BinaryTree, Heap] In abstract classes, only retain abstract methods. Replace the generic 'T' with 'E' in Heap and PriorityQueue 2023-10-16 20:34:22 +08:00
zrwusa fc7177130c
Merge branch 'main' into heap 2023-10-16 00:17:37 +08:00
Revone 219e41f32e [heap] test 2023-10-16 00:14:57 +08:00
Kirk Qi dd7b641273 [heap, priority queue] Heap improved. References #123: redesigned 2023-10-15 22:09:26 +08:00
Revone 14dae1c1cd test 2023-10-15 22:04:33 +08:00
Revone 4d01fa413e [core] Clean up unnecessary redundancies in the interfaces and rectify any illogical interface definitions. 2023-10-11 20:21:20 +08:00
Revone 836927ab82 [core] To compile a CommonJS module in the "dist" directory into ES6 code. Fixing some missing bugs in overloaded methods. 2023-10-11 18:44:59 +08:00
Revone 8b9ef598e5 [binary-tree] To adhere to best practices, rename certain methods and replace optional parameters with default values. 2023-10-10 23:13:52 +08:00
Revone 31aa92e761 [binary-tree] Replace optional parameters with default values 2023-10-10 23:01:13 +08:00
Revone 8b8e781607 [core] Rename those legacy IDs that have not been updated to 'key' 2023-10-10 22:39:31 +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 ed1ecf541f [binary-tree] unnecessary geters and setters removed 2023-10-10 21:56:55 +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 0c5df67215 [readme] badages updated 2023-10-10 17:22:18 +08:00
Revone 2bdfd79b9f [rbtree] implemented, but with bugs 2023-10-10 10:28:23 +08:00
Revone 8659e1d09d [pkg] code quality improved to 99% 2023-10-06 20:51:55 +08:00
Revone 1687f3cde8 [core] HashTable, HashMap, SkipList implemented 2023-09-29 17:37:30 +08:00