Commit graph

70 commits

Author SHA1 Message Date
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
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
47fcfabae7 [binarytree] modified the getDepth method to adhere to the proper definition of "tree depth." 2023-10-18 18:28:36 +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
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
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
Revone
bd25485555 [project] generic naming standardized 2023-09-26 13:50:40 +08:00
Revone
80675e2bbb [BinaryTree] leftSum feature eliminated 2023-09-25 17:18:14 +08:00
Revone
96621c72e5 [RBTree] first commit of RBTree. [HashTable] first commit 2023-09-25 15:48:24 +08:00
Revone
ea8f993a4a [prettier] bracket spacing false 2023-09-22 10:43:16 +08:00
Revone
25c88edcd6 [README] badges added. 2023-09-22 10:40:12 +08:00
Revone
b4643625a0 test coverage report supported. Code quality enhanced and support multiple environments such as ES6 (ESModule), ES5 (CommonJS), and a single file for both browser and Node.js environments (UMD). Supported for source maps. CODE-OF-CONDUCT.md, COMMANDS.md, SECURITY.md, .gitattributes added. 2023-09-22 00:53:34 +08:00
Revone
b263262a46 [project] github workflow added. eslint added. formating code by using prettier. 2023-09-21 12:52:17 +08:00
Revone
95b44f439b [project] ESLint applied 2023-09-20 11:39:24 +08:00
Revone
80570451de [TreeMultiset], remove unnecessary parameters and adjust the 'addMany' method. 2023-09-19 23:10:09 +08:00
Revone
6f3baa9c79 [BST] BST has added an 'addMany' method, supports batch insertion using binary splitting, supports both recursive and iterative approaches. 2023-09-19 22:47:58 +08:00
Revone
0abd5eced7 Avoid using the Array.unshift method to slightly enhance AVLTree insertion performance. 2023-09-19 17:03:53 +08:00
Revone
55704871b6 v1.3.1 published, new Queue implemented from SinglyLinkedList, and ArrayQueue implemented from Array 2023-09-18 22:04:39 +08:00
Revone
773c970667 Establish a unified code editor encoding standard by .editorconfig file. 2023-09-12 11:15:20 +08:00
Revone
450f051138 Optimize the overall codebase and directory structure. 2023-09-12 11:10:09 +08:00
Revone
26ab0be17b [BinaryTree] isMergeDuplicatedNodeById removed, [MapGraph] MapGraph added 2023-09-07 21:00:22 +08:00
Revone
407c3b104a Tidying up the code and identifying any further requirements that need to be marked as TODO. 2023-08-31 22:25:41 +08:00
Revone
2d1010b352 Rework the add, addMany, and fill methods of AbstractBinaryTree. Refactor the AddMany method of TreeMultiset. Fix the bug in TreeMultiset where all Node counts become 1 after calling the perfectBalance method. Remove the unnecessary configuration of autoIncrementId. 2023-08-31 20:02:31 +08:00
Revone
bd71edc536 images removed, heap docs revised 2023-08-31 00:50:23 +08:00
Revone
df2f940189 Redesigned for greater coherence, TreeMultiset now inherits from AVLTree, with the 'count' member variable relocated to TreeMultiset. Revisions to the documentation have been made accordingly. 2023-08-29 20:29:53 +08:00
Revone
1a893cfd20 After extracting the count member variable to TreeMultiset, the initial test has passed successfully. 2023-08-29 17:29:57 +08:00
Revone
87b7e420b5 remove createNode function from every Binary Tree Nodes 2023-08-28 20:04:43 +08:00
Revone
61f465fe99 Added a method for data type validation through type conversion to Zod schemas. 2023-08-28 18:43:09 +08:00
Revone
363c66490a Modify all methods of BinaryTreeNode to make the val parameter optional. 2023-08-28 08:40:31 +08:00
Revone
8ac4e0e7c4 Standardize methods for all BinaryTrees, enabling support for both TreeNode parameters and TreeNodeId as arguments. 2023-08-27 21:14:18 +08:00