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
|
1ec5a19172
|
[core] Besides Binary Trees and Graphs, access control optimizations have been applied to member variables.
|
2023-10-31 10:34:41 +08:00 |
|
Revone
|
3009c14c24
|
[queue] Added some alias methods.
|
2023-10-31 09:03:06 +08:00 |
|
Revone
|
121516f303
|
[core] Rename all 'val' variables to 'value'.
|
2023-10-30 20:27:08 +08:00 |
|
Revone
|
fcec29f32c
|
[graph test] edge cases enriched
|
2023-10-30 20:08:25 +08:00 |
|
Revone
|
d44788bea9
|
[graph] Modify the data structure design of the graph to change the generics of Vertex and Edge to defaults, where it is possible to only pass the value types of Vertex and Edge for increased usability.
|
2023-10-30 18:27:58 +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
|
c492af0461
|
[linked-list] Standardize the method names of DoublyLinkedList and SinglyLinkedList.
|
2023-10-29 16:43:19 +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
|
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 |
|
Revone
|
7d566f1c33
|
[test] Test case coverage is 63.1%.
|
2023-09-26 17:06:17 +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
|
70f439da13
|
v1.3.3 published
|
2023-09-19 17:00:25 +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
|
199a916d50
|
v1.21.3 published
|
2023-09-12 11:37:36 +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
|
b0774bee5b
|
[core] remove all the unnecessary files and directories when publishing the npm package
|
2023-09-09 23:49:53 +08:00 |
|
Revone
|
c7e1887b96
|
v1.21.0 published
|
2023-09-07 22:28:00 +08:00 |
|
Revone
|
26ab0be17b
|
[BinaryTree] isMergeDuplicatedNodeById removed, [MapGraph] MapGraph added
|
2023-09-07 21:00:22 +08:00 |
|
Revone
|
f3b2398d20
|
[BinaryTree] isMergeDuplicatedNodeById removed, [MapGraph] MapGraph added
|
2023-09-07 21:00:10 +08:00 |
|
Revone
|
6f86f71cdd
|
Add sort method in heap.Ready to publish v1.20.0
|
2023-09-01 12:43:33 +08:00 |
|
Revone
|
d93895dfff
|
remove assets for reduce the size of package
|
2023-08-31 22:32:11 +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
|
60e5824524
|
The APIs of Heap and Priority Queue got optimized
|
2023-08-31 00:18:13 +08:00 |
|
Revone
|
dccf2986f0
|
Compatible with standalone data structure libraries.
|
2023-08-30 14:27:18 +08:00 |
|
Revone
|
4c14fae966
|
separate the bst project
|
2023-08-30 11:55:06 +08:00 |
|
Revone
|
d4d50fef09
|
first commit
|
2023-08-30 11:44:27 +08:00 |
|
Revone
|
ea5f782577
|
rename the priority to priorityExtractor
|
2023-08-30 10:49:49 +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
|
de5a001b6a
|
The Graph's API has been optimized.
|
2023-08-28 11:15:04 +08:00 |
|
Revone
|
363c66490a
|
Modify all methods of BinaryTreeNode to make the val parameter optional.
|
2023-08-28 08:40:31 +08:00 |
|
Revone
|
0b330aeadd
|
Enable adding nodes using both Vertex instances and the vertex parameter in the Graph. For adding edges, support both Edge instances and the src, dest parameter approach simultaneously.
|
2023-08-27 22:26:30 +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 |
|
Revone
|
d29ff07f40
|
Swap the positions of val and id to enhance the intuitiveness of the API. Revise the design of familyPosition in AbstractBinaryTree such that the previous assignment approach is replaced with a real-time retrieval method. Standardize the BST.remove method with the AbstractBinaryTree.remove method. Eliminate the redundant attribute name from TreeNode.
|
2023-08-26 10:24:31 +08:00 |
|
Revone
|
8db8976503
|
All the RecursiveNodes renamed as NodeNested pattern. TreeMultiSet extended from AVLTree
|
2023-08-24 11:13:28 +08:00 |
|
Revone
|
2ea57d26ae
|
For the sake of API simplicity, if val is not provided, id can be used in its place.
|
2023-08-24 00:01:44 +08:00 |
|
Revone
|
6bc894c5c1
|
Organized all the interfaces. Implemented the removeEdgeSrcToDest method for the Graph class.
|
2023-08-23 23:03:19 +08:00 |
|
Revone
|
860d18d222
|
"AbstractBinaryTree" has been extracted from "BinaryTree." TreeMultiSet has been optimized.
|
2023-08-23 13:15:30 +08:00 |
|
Revone
|
849e3c6bca
|
Test and debug the bug related to BinaryTreeNode's handling of object types.Revise the design of the constructor to incorporate abstract methods for enforcing the requirement that subclasses must implement the _createVertex and _createEdge methods.
|
2023-08-23 11:39:01 +08:00 |
|
Revone
|
60e08d3ac5
|
Successfully implemented recursive type inference for the BinaryTreeNode type by passing the node constructor through the constructor, effectively addressing the type inconsistency caused by invoking parent class methods after inheritance.
|
2023-08-22 22:50:16 +08:00 |
|
Revone
|
d3f5dd4a9e
|
edge1.data has type problem. After the uniform design, the generics of containers (DirectedGraph, BST) are based on the type of value. However, this design has a drawback: when I attempt to inherit from the Vertex or BSTNode classes, the types of the results obtained by all methods are those of the parent class.
|
2023-08-22 13:30:22 +08:00 |
|
Revone
|
1b441f1d47
|
By constraining the necessity to implement the _createNode method, we ensure that the node types are correct within the subclass. The current design of the Graph needs further optimization.
|
2023-08-22 08:58:42 +08:00 |
|
Revone
|
c1b5969c51
|
Support TypeScript v5.1.6. Standardize all getters and setters. Adjust access permissions for accessors, set access permissions for protected or private member variables, and indicate them using the private identifier "_".
|
2023-08-21 16:17:01 +08:00 |
|
Revone
|
2c82e31a29
|
Optimize the insertAfter method of SinglyLinkedList, insertAfter, insertBefore, and delete methods of DoublyLinkedList to directly add an element after a given node's reference without the need for traversal. And conducted performance test.
Modify the insertBefore and delete methods of SinglyLinkedList to align their method APIs with those of DoublyLinkedList.
|
2023-08-20 18:52:57 +08:00 |
|
Revone
|
dcec645f05
|
Integration test for SinglyLinkedList and DoublyLinkedList completed
|
2023-08-20 00:53:18 +08:00 |
|
Revone
|
b9dba24bf3
|
re-implemented the SinglyLinkedList and DoublyLinkedList, and completed the unit tests.
|
2023-08-20 00:12:30 +08:00 |
|
Revone
|
91c47c28c2
|
SinglyLinkedList reimplemented and tested
|
2023-08-19 23:12:16 +08:00 |
|
Revone
|
13059971a8
|
Isolated type removed
|
2023-08-18 22:51:45 +08:00 |
|
Revone
|
694ca46893
|
bug fixed of method isValid for PriorityQueue and Heap, test cases enriched for PriorityQueue and Heap, SpecifyOptional type added
|
2023-08-18 22:39:45 +08:00 |
|
Revone
|
5db5561999
|
Heap test cases added
|
2023-08-18 13:40:08 +08:00 |
|
Revone
|
07231cd4c4
|
v1.15.2 published
|
2023-08-17 00:50:14 +08:00 |
|
Revone
|
2d07c5e5af
|
update Typescript version to 4.9.5, DirectedGraph tests completed, Remedial measures have been taken in TypeScript versions 5.0 and above to enforce consistent access modifiers for getters and setters., annotation content has been enriched.
|
2023-08-16 22:44:38 +08:00 |
|
Revone
|
02bc7c4b8f
|
add function names
|
2023-08-16 01:35:16 +08:00 |
|
Revone
|
4da59257e8
|
Name the addition method as "add" within the unified API
|
2023-08-14 20:39:10 +08:00 |
|
Revone
|
8bdc3218db
|
Name the addition method as "add" within the unified API
|
2023-08-14 19:43:52 +08:00 |
|
Revone
|
d5e64f8127
|
api docs deploied, graph basic test completed
|
2023-08-14 08:47:26 +08:00 |
|
Revone
|
5d25e6f05b
|
images cropped
|
2023-08-13 19:59:28 +08:00 |
|
Revone
|
dec3146ec3
|
Circular dependencies check supported
|
2023-08-12 22:54:56 +08:00 |
|
Revone
|
c6e933acf0
|
All code annotations have been completed.
|
2023-08-12 11:35:25 +08:00 |
|
Revone
|
72c4b7ad2b
|
All code annotations have been completed.
|
2023-08-12 11:34:20 +08:00 |
|
Revone
|
22a4e4136d
|
recover the lost images
|
2023-08-12 01:19:52 +08:00 |
|
Revone
|
2efebe82c2
|
support test by using Jest
|
2023-08-12 01:11:08 +08:00 |
|
Revone
|
0770aeb2d1
|
version 0.9.16 published
|
2023-08-11 22:46:43 +08:00 |
|
Revone
|
62bac55b6e
|
markdown modified
|
2023-06-28 00:42:28 +08:00 |
|
Revone
|
e0341ac53a
|
diagram of complexities
|
2023-06-28 00:32:34 +08:00 |
|
Revone
|
d0885cd561
|
exports bug fixed
|
2023-06-16 10:58:17 +08:00 |
|
Revone
|
d57926602d
|
first commit
|
2023-06-16 00:34:28 +08:00 |
|