Commit graph

442 commits

Author SHA1 Message Date
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 b00964c6fc v1.21.4 published 2023-09-12 12:08:13 +08:00
Revone 3d804cf13b vivid-algorithm 2023-09-12 11:43:25 +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 da68f2f97c v1.21.0 publish ready 2023-09-07 22:32:48 +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 cbfdb94b5b Split the data structures and publish all the individual packages to NPM. 2023-08-30 17:31:49 +08:00
Revone 573c51d894 Compile JS to ES6 2023-08-30 16:09:01 +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 ea24cd47fd v1.19.0 published 2023-08-29 20:52:15 +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 e70d988ac9 v1.18.6 published 2023-08-23 13:23:02 +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 dcfa5f1545 Demo pictures added 2023-08-20 22:11:51 +08:00
Revone 4813c6d783 v1.17.3 published 2023-08-20 21:08:25 +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 938df50847 v1.17.0 published 2023-08-20 01:02:11 +08:00
Revone dcec645f05 Integration test for SinglyLinkedList and DoublyLinkedList completed 2023-08-20 00:53:18 +08:00