Commit graph

218 commits

Author SHA1 Message Date
Revone f0927e8b0a docs: Wrote a feature description for each data structure. refactor: Standardize the import of all types and objects 2023-12-11 20:27:05 +08:00
Revone 60a3154178 refactor: Differentiate between type imports and regular object imports. 2023-12-11 14:14:46 +08:00
Revone 9d4228c9fe refactor: Represent the optional parameters in the dijkstraWithoutHeap and dijkstra methods using default arguments. Use the Heap data structure instead of PriorityQueue. 2023-12-11 09:41:24 +08:00
Revone 1fc47918d2 refactor: Add an isNotNodeInstance method to every binary tree data structure to prevent node type errors. The getSuccessor method of Red-Black trees uniformly utilizes the getSuccessor method from BinaryTree. 2023-12-11 09:02:26 +08:00
Revone 26208e9157 release: 1.48.9 2023-12-08 20:03:48 +08:00
Revone 93201bddba perf: The add method of BinaryTree doesn't need to check for existence first, it can detect and add in a single traversal. Feat: Discard the ObjectDeque data structure. test: Increased test coverage for Deque and Queue. 2023-12-08 19:54:13 +08:00
Revone a02a9a94d2 refactor: Rewrite the lastKey method. The BinaryTree.add method filters out duplicate additions. Rename popLast and popFirst to pollLast and pollFirst. 2023-12-07 19:34:20 +08:00
Revone 1c8324147f feat: The addMany method in binary tree data structures supports both addMany(keys, values) and addMany(entries). 2023-12-07 10:19:17 +08:00
Revone 7ddad8eb65 docs: add methods for Binary Tree data structures 2023-12-07 09:21:56 +08:00
Revone 1b1d5c6669 feat: The add method of the binary tree is compatible with the multi-parameter mode of add(key, value), and it is also compatible with the entry method. 2023-12-07 09:16:25 +08:00
Revone f56542a07a refactor: renamed variables 2023-12-06 11:32:04 +08:00
Revone ce99f7988e release: 1.48.4 2023-12-06 10:42:12 +08:00
Revone 6cc250606b fix: bug fix for #51 . Removing a vertex from a DirectedGraph doesn't remove it's edges 2023-12-06 10:36:00 +08:00
Revone 241cb26a6f fix: bug fix for #52 2023-12-06 09:18:23 +08:00
Revone 8a24a6d7a4 refactor: The binary tree data structure supports custom types for keys 2023-12-04 21:58:41 +08:00
Revone 7f5eb6cb70 refactor: Extract all methods such as 'some', 'every', 'entries', 'keys', 'values', 'forEach', 'reduce' into the base classes 'IterableElementBase' and 'IterablePairBase'. 2023-12-02 22:15:18 +08:00
Revone 87ea490458 feat: print method has been added in HashMap. chore: reformated HashMap test. docs: high-performance HashMap benchmark 2023-11-30 10:20:12 +08:00
Revone 65949b7d19 feat: Reimplement a more efficient HashMap and correctly rename the original HashMap as LinkedHashMap. 2023-11-30 09:59:01 +08:00
Revone 9a9571431c feat: Add keys, values, and clone methods to all binary tree data structures. 2023-11-27 18:01:59 +08:00
Revone e1e672b3b5 refactor: Extract the isNode and exemplarToNode methods to achieve best practices. 2023-11-27 13:38:26 +08:00
Revone 20550fb718 feat: Implement the [Symbol.iterator], forEach, filter, map, and reduce methods for Graph, specifically targeting the nodes. fix: type error fixed 2023-11-27 11:24:23 +08:00
Revone 6694f98e67 refactor: In SegmentTree data structure, only use 'undefined' and abandon the design where both 'null' and 'undefined' coexist. 2023-11-27 09:42:49 +08:00
Revone 86200435e8 refactor: In Stack data structures, only use 'undefined' and abandon the design where both 'null' and 'undefined' coexist. 2023-11-27 09:38:03 +08:00
Revone e89509eb34 refactor: In Linked List data structures, only use 'undefined' and abandon the design where both 'null' and 'undefined' coexist. 2023-11-27 09:31:11 +08:00
Revone f3df66eef3 refactor: In Graph data structures, only use 'undefined' and abandon the design where both 'null' and 'undefined' coexist. 2023-11-26 20:11:29 +08:00
Revone 982152abc0 fix: type fixed 2023-11-25 22:33:38 +08:00
Revone f9f9df81f5 feat: Perfectly implement fast conversion between data structures. Implement a getter size for Trie. docs: Add comments to the 'add' and 'addMany' methods of all binary tree data structures. 2023-11-25 22:32:09 +08:00
Revone 76db084bda refactor: Explicitly call the super.addMany method. chore: reformat project configs 2023-11-25 20:59:34 +08:00
Revone b099b759e8 refactor: The strategy of all binary tree data structures is to replace a node only when the same node is added. 2023-11-25 20:40:11 +08:00
Revone 18b895cb4c refactor: The parameters for the add and addMany methods in all binary tree data structures have been changed to the entry style, and the first test has passed. 2023-11-25 14:38:32 +08:00
Revone cd14ec79ec refactor: Use a type BTNExemplar to simplify the method parameters of binary tree data structures. 2023-11-24 09:58:10 +08:00
Revone 4930f87bcd feat: Add an 'elements' parameter to the constructors of all binary tree data structures to accept Iterable types. 2023-11-23 21:43:45 +08:00
Revone 8f9eb82bfd feat: To support conversion between data structures, Heap, PriorityQueue, Queue, Deque, SinglyLinkedList, DoublyLinkedList, and Stack have all added an 'elements' parameter for initializing the elements of the data structure. 2023-11-23 18:40:30 +08:00
Revone 5cf88d098e feat: All data structures except Graph have implemented *[Symbol.iterator], forEach, filter, map, reduce methods. 2023-11-23 13:19:13 +08:00
Revone 3205f90cf6 docs: Reorganize some content in the README 2023-11-22 19:00:06 +08:00
Revone b53156fb48 fix: createTree return type check 2023-11-22 17:37:43 +08:00
Revone edbbf4a951 fix: type check for 'typeof this' is not supported in TS 4.9.5 2023-11-22 17:31:51 +08:00
Revone a41e222481 feat: Implement forEach, filter, map, reduce, and [Symbol.iterator] methods for all binary tree data structures 2023-11-22 17:18:37 +08:00
Revone 01b969edca refactor: rename NIL of RedBlackTree to Sentinel 2023-11-21 17:44:22 +08:00
Revone 54c74f9af6 feat: The print method supports switches for empty nodes and guardian nodes. refactor: It eliminates some unnecessary type definitions. 2023-11-21 17:30:57 +08:00
Revone 7e3aeb8d2a chore: reformat codebase 2023-11-20 19:27:25 +08:00
Revone 92552da31c fix: binary tree print bug fixed. test: integration test of rb-tree 2023-11-20 17:30:55 +08:00
Revone 5eaf1d6aab fix: Ignore inserting the duplicate into RedBlackTree. refactor: renamed the helpers to common 2023-11-20 16:15:49 +08:00
Revone d3a6bdac25 fix: type error fixed. docs: Remove unnecessary 'Software Engineering Design Standards'. 2023-11-20 15:14:13 +08:00
Revone 7c6e5d3b1c refactor: HashMap supports custom hash functions. 2023-11-20 13:03:39 +08:00
Revone 1e2013df5e refactor: Eliminate unnecessary data structures. test: Add performance comparison tests with native Map and Set. 2023-11-20 09:51:34 +08:00
Revone b4e89d9f72 refactor: Discard the unnecessary Iterator class in Deque and HashMap, and instead implement using Generators. 2023-11-19 21:09:44 +08:00
Revone b089cf47b3 refactor: In the Deque data structure, abandon the Iterator class and implement using a Generator instead. 2023-11-19 20:48:53 +08:00
Revone 6f74397f8d fix: Iterator supports function length or function size 2023-11-19 09:04:48 +08:00
Revone 5c6803b1a9 docs: Deque docs enriched, big o notations 2023-11-19 08:56:37 +08:00