Commit graph

52 commits

Author SHA1 Message Date
Revone
025a90a145 [graph] use 'Set' in dfs instead of 'Map' 2023-11-04 15:47:24 +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
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
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
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
c11cc4527b [graph] The removal method in the graph data structure is standardized to 'delete' 2023-10-28 15:58:48 +08:00
Revone
af23af911a [binary-tree] renamed _loopType to _iterationType 2023-10-27 17:17:27 +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
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
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
Kirk Qi
dd7b641273 [heap, priority queue] Heap improved. References #123: redesigned 2023-10-15 22:09:26 +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
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
bd25485555 [project] generic naming standardized 2023-09-26 13:50:40 +08:00
Revone
ea8f993a4a [prettier] bracket spacing false 2023-09-22 10:43:16 +08:00
Revone
b263262a46 [project] github workflow added. eslint added. formating code by using prettier. 2023-09-21 12:52:17 +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
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
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
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
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
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
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
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
c6e933acf0 All code annotations have been completed. 2023-08-12 11:35:25 +08:00