Revone
6539e50598
feat: Provide custom toElementFn in Heap configuration options to transform user raw data into a specified element type within a single loop.
2024-01-31 10:04:21 +08:00
Revone
8051850331
feat: When comparing two values in the Heap and binary search tree, if one of the values is of object type, it is mandatory to pass a custom comparator function.
2024-01-29 20:23:06 +08:00
Revone
3028a78985
Refactor: Abandon the use of Comparable types as keys for the binary tree, as the '>', '>=', '<', '<=' operators are supported by the any type. The heap also adopts the same comparator as the binary tree.
2024-01-29 11:35:24 +08:00
zrwusa
6fccb57f1b
Update README.md
2024-01-27 11:10:38 +08:00
Revone
c2f98f851b
release: 1.51.9
2024-01-26 18:26:40 +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
0013242189
Refactor: In the binary search tree data structure, use a comparator instead of a variant configuration for comparison.
2024-01-25 10:24:25 +08:00
Revone
89dadfccc2
Refactor: Remove the unnecessary design of the extractor in the Binary Search Tree (BST). Utilize 1, -1, and 0 to replace the original comparison results GT, LT, and EQ.
2024-01-25 09:38:03 +08:00
Revone
1303aba070
refactor: Use Comparable type constraint for the key in the binary tree to improve comparator performance.
2024-01-24 18:38:34 +08:00
Revone
82acc04e6f
release: 1.51.7
2024-01-19 18:06:28 +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
2eac608960
release: 1.51.6
2024-01-18 19:18:29 +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
c6b9564db7
release: 1.51.4
2024-01-17 22:43:32 +08:00
Revone
18b1fab16d
feat: Restore the TreeNode data structure. Add number utilities to the utils module. docs: Update POSTS_zh-CN.md.
2024-01-17 22:27:38 +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
6ca47958bf
release: 1.51.2
2024-01-15 21:14:50 +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
173966edea
release: 1.51.1
2024-01-15 12:13:05 +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
76df347da5
efactor: completely eliminate the use of enumerations
2024-01-14 19:49:50 +08:00
Revone
25de27cf6c
fix: Explicitly specify IterationType.
2024-01-14 18:59:28 +08:00
Revone
312ba2f492
release: 1.50.8
2024-01-14 03:15:17 +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
a653d465fa
Refactor: Use 'this.isRealNode' instead of explicit null checks in getHeight, getMinHeight, and getNodeByKey methods in the binary tree. In the red-black tree, directly invoke the parent class getNode method, significantly improving the speed of red-black tree node deletion and retrieval.
2024-01-12 14:15:05 +08:00
Revone
644ce69190
Refactor: Review methods in the binary tree that require explicit 'override' annotation. Feat: Add the 'getMutableCount' method to AVLMultiMap.
2024-01-12 11:28:15 +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
1f8fc1487c
Refactor: Due to critical issues in the previous implementation of the Red-Black Tree, it has been deprecated and replaced with a new implementation of both the Red-Black Tree and TreeMultiMap.
2024-01-11 20:13:02 +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
70882d24fc
release: 1.50.4
2024-01-08 22:29:10 +08:00
Revone
996837734a
Merge branch 'main' of https://github.com/zrwusa/data-structure-typed
2024-01-08 22:25:31 +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
zrwusa
27697259a1
Update issue templates
2024-01-08 21:48:29 +08:00
Revone
e2ab386df3
release: 1.50.3
2024-01-08 09:49:33 +08:00
Revone
6e4d113004
release: 1.50.3
2024-01-07 22:55:34 +08:00
Revone
a95567b3c4
release: 1.50.3
2024-01-07 22:32:39 +08:00
Revone
a01d0c82b1
release: 1.50.3
2024-01-07 22:27:31 +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