Commit graph

180 commits

Author SHA1 Message Date
Revone 0ff5ddc410 chore: Implement unit tests as example code in the README.md and source code comments. 2024-11-19 23:20:25 +13:00
Revone 28ff30ea4b feat: The binary trees support storing values in a Map and provides parameters for Map mode. #111. Rename type definitions and parameter names to align with best practices. 2024-11-01 19:40:19 +13:00
Revone 8ae577315a release: v1.52.9 2024-10-31 17:13:36 +13:00
Revone 6428e0f228 fix: Bug fix #103: Fixed an issue where all binary tree clone methods lost constructor parameters. Optimized variable names. Standardized access modifiers for binary tree member variables. 2024-10-30 20:52:23 +13:00
Revone fc0d157295 refactor: Test coverage increased to 95.63%.
Upgraded all dependencies.
Added a toVisual method while retaining the print method.
Replaced all short-circuit evaluations with logical expressions.
2024-10-30 15:30:28 +13:00
Revone aece11bd01 release: v1.52.6 2024-10-29 17:27:40 +13:00
Revone a29dc270e6 Change the print method to return a value instead of directly calling console.log.Unify the logic of all keyValueOrEntryOrRawElementToNode methods in BinaryTree.
Use a generic isComparable method to determine if a value is comparable in size when using the isKey method in the BinaryTree.
Fix the boundary value bug in the getNodes method of BinaryTree.
Support callback functions in getLeftMost and getRightMost to support returning results with different properties.
If a comparator is specified for BST, the isKey method will force the object type to be comparable.
The isComparable method has been implemented based on JavaScript's comparison principles.
2024-10-29 16:23:24 +13:00
Revone 5a492c1801 refactor: To standardize the _dfs method of the BinaryTree to achieve full generalization. 2024-10-21 20:55:48 +13:00
Revone e271f73de0 feat: Refactor the BinaryTree's dfs method into a private helper function _dfs to prepare for a more generic implementation. 2024-10-21 19:14:36 +13:00
Revone 7e45aaf609 style: Prettier version updated. Code style adhered to Prettier strictly. 2024-08-27 10:56:04 +12:00
Revone abfb441bc7 docs: priority queue is heap 2024-08-02 10:15:56 +12:00
Revone 6642f8b66b docs: plain language explanations 2024-07-31 21:04:20 +12:00
Revone 5d146cbfc2 docs: refined the table of deferences of data structures 2024-07-31 14:33:55 +12:00
Revone 7f32fee19a docs: Added a document detailing the differences between various data structures, including schematic diagrams of the data structures. 2024-07-31 14:10:32 +12:00
Revone 94d34e61e7 Merge branch 'main' of https://github.com/zrwusa/data-structure-typed 2024-02-01 23:26:49 +08:00
Revone 8616e4ddc4 release: 1.52.0 2024-02-01 23:26:45 +08:00
Revone 1ae9e929b1 feat: Provide the toElementFn method during instantiation for the entire data structure series, allowing the mapping of raw data to the desired data type and direct insertion of data into the data structure to be completed within a single loop.
fix: Override the corresponding clone, filter, and map methods in the Heap and PriorityQueue data structures, ensuring the accurate return of the respective data structures. #84 fixed.
2024-02-01 21:05:10 +08:00
zrwusa 6fccb57f1b
Update README.md 2024-01-27 11:10:38 +08:00
Revone 02d71a23ba Refactor: All binary tree data structures now support the toEntryFn for extracting key and value from raw data at once, avoiding users from having to traverse data multiple times, thus improving performance. Chore: Explicitly use the override keyword. 2024-01-26 18:20:15 +08:00
Revone 3c26538c2e release: 1.51.8 2024-01-25 10:55:59 +08:00
Revone ae11bca83c Refactor: Added the _ensureCallback method to eliminate redundant code. 2024-01-19 18:02:56 +08:00
Revone 3fa7155c97 fix: #82. refactor: Minor performance optimization, rewrite the _compare method within the Red-Black Tree. test: Change the test sequence in binary-tree-overall.test. 2024-01-19 17:13:25 +08:00
Revone 5d41696998 release: 1.51.6 2024-01-18 19:18:15 +08:00
Revone 4bebf6c261 docs: downloads added to individual packages 2024-01-18 18:53:05 +08:00
Revone b442db39e8 docs: fix the links 2024-01-18 12:01:01 +08:00
Revone 25e9f36577 feat: Remove the meaningless Tree data structure.
refactor: Adjust the logic of isRealNode for a slight performance improvement.
docs: table fixed
2024-01-16 11:26:43 +08:00
Revone e2f554fb5c docs: re-organized 2024-01-16 11:01:27 +08:00
Revone bb37adbe68 release: 1.51.3. chore: Restore keyword list to version 1.47.4. 2024-01-16 10:40:21 +08:00
Revone 56f1fabfca refactor: Renaming SENTINEL to NIL and placing the NIL node in the BinaryTree allows for direct equality checks in isNIL and isRealNode, avoiding excessive operations to improve performance. As a result, the performance of the get method in AVLTree has tripled. 2024-01-15 21:05:42 +08:00
Revone 9915ce9a0d Refactor: Rename _defaultOneParamCallback to _DEFAULT_CALLBACK. Adopt early return code style in the ensureNode method. Rename some internal recursive method names. 2024-01-15 12:12:01 +08:00
Revone 46cdf2b668 release: 1.50.9 2024-01-14 20:57:07 +08:00
Revone 25de27cf6c fix: Explicitly specify IterationType. 2024-01-14 18:59:28 +08:00
Revone 1c2a70741b test: RedBlackTree 2024-01-14 03:14:26 +08:00
Revone a11c104dff refactor: Replace all enumerations with union types for significant performance improvements in BST, AVLTree, and RedBlackTree. 2024-01-14 03:04:07 +08:00
Revone d0b3fcf164 release: 1.50.7 2024-01-12 14:33:45 +08:00
Revone e1631a8e3e refactor: Define a generic CRUD enum to represent operational states. 2024-01-12 11:07:33 +08:00
Revone c812f43a04 release: 1.50.6 2024-01-11 20:28:51 +08:00
Revone f8832a04c0 refactor: Constrain the getter size() from the base class. Refactor some inappropriate performance tests.
feat: Add sorting capability to performance test reports.
2024-01-09 15:57:30 +08:00
Revone 4747839d88 Refactor: Standardize addition and removal methods for all sequential data structures to push, pop, shift, unshift. 2024-01-09 12:04:50 +08:00
Revone 465744c2ec feat: Replace the AVLTree with a Red-Black Tree to implement TreeMultiMap, preserving the implementation of TreeMultiMap using AVLTree and renaming it as AVLTreeMultiMap. 2024-01-08 22:22:41 +08:00
Revone 5c9f4fd483 fix: #74 . Refactor: Implement the Tarjan algorithm separately for DirectedGraph and UndirectedGraph. In the previous design, the tarjan method was placed in the AbstractGraph class. However, Tarjan algorithm is used to find connected components in directed graphs and to solve bridges, articulation points, determine the presence of cycles (though not all), and biconnected components in undirected graphs. The algorithm for finding all cycles in the graph can be shared between directed and undirected graphs using the getCycles method. 2024-01-07 22:25:25 +08:00
Revone e91970c09f refactor: Directly constrain the methods clear, map, and filter in the base class.
feat: Implement the clear method in DirectedGraph, UndirectedGraph, and Trie.
docs: Add SPECIFICATION.md, SPONSOR.md, and SPONSOR_zh-CN.md. Adjust badge order and add a new contributor count badge.
2024-01-06 17:50:00 +08:00
Revone eaf8912746 docs: Verify the time and space complexity for each method.
feat: Add the cutRest method to Deque.
refactor: Update the cut method in Deque to support the isCutSelf parameter.
2024-01-04 16:28:17 +08:00
Revone ecf4d6ad11 fix: Fix bug #71.
feat: Define abstract methods through a base class to add clone and isEmpty methods to all data structures. Add delete and deleteAt methods to Deque, Queue, and Stack data structures.
refactor: Optimize the type definition N to NODE for alignment with the design of TREE.
2024-01-03 15:52:10 +08:00
Revone ec649bd8bb test: reorgnization. docs: improved a lit bit 2023-12-30 11:49:59 +08:00
Revone 12abe48b33 chore: SEO optimization 2023-12-29 21:50:20 +08:00
Revone a9c556fce3 docs:Sequential Organization 2023-12-29 16:42:20 +08:00
Revone fa9e3dbac4 docs: Enhance the explanation of the theory that respects computer science. 2023-12-24 17:54:51 +08:00
Revone c949b5b741 refactor: Rearrange constructor parameters for all data structures, with the first parameter being the output and the second parameter being a configuration object. Make all configuration object properties optional.
fix: Provide optional parameters for inheritable data structures to facilitate inheritance. #64
2023-12-24 17:44:55 +08:00
Revone fdf5d06245 release: 1.49.6 2023-12-23 12:07:50 +08:00