| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211 |
- # Change Log
- All notable changes to this project will be documented in this file.
- The format is based on Keep a Changelog and this project adheres to Semantic Versioning.
- ## [4.3.0] - 2023.01.20
- ### Added
- - Add public member `container` to `Iterator` which means the container that the iterator pointed to.
- ### Changed
- - Reimplement `Queue`, separate `Queue` from `Deque`.
- ## [4.2.0] - 2022.11.20
- ### Changed
- - Optimized the structure of class `TreeNodeEnableIndex`.
- - Change the `iterator access denied` error message to reduce the packing size.
- - Change the internal storage of the hash container to the form of a linked list, traversing in insertion order.
- - Standardize hash container. Make it extends from `Container` and add general functions.
- - Refactor `LinkList` to do optimization.
- ### Added
- - Add public `length` property to all the container.
- - Add returned value to `pop` function including `popBack` and `popFront` to all the container which has such function.
- - Add returned value to `eraseElementByKey` which means whether erase successfully.
- - Add returned value to `push` or `insert` function which means the size of the container.
- ### Fixed
- - Fixed wrong error type when `updateKeyByIterator`.
- - Fixed wrong iterator was returned when erase tree reverse iterator.
- ## [4.2.0-beta.1] - 2022.11.06
- ### Changed
- - Remove all the arrow function to optimize.
- - Modify `HashContainer` implementation to optimize.
- ## [4.2.0-beta.0] - 2022.10.30
- ### Added
- - Add `ts` sourcemap for debug mode.
- - Add `this` param for `forEach` function.
- - Support single package umd build.
- ### Changed
- - Changed the packaging method of isolation packages release and the method of the member export.
- ## [4.1.5] - 2022.09.30
- ### Added
- - Add `find`, `remove`, `updateItem` and `toArray` functions to `PriorityQueue`.
- - Support single package release (use scope @js-sdsl).
- ## [4.1.5-beta.1] - 2022.09.23
- ### Fixed
- - Get wrong tree index when size is 0.
- ## [4.1.5-beta.0] - 2022.09.23
- ### Added
- - Add `index` property to tree iterator which represents the sequential index of the iterator in the tree.
- ### Changed
- - Minimal optimization with private properties mangling, macro inlining and const enum.
- - Private properties are now mangled.
- - Remove `checkWithinAccessParams` function.
- - Constants of `HashContainer` are moved to `HashContainerConst` const enum.
- - The iteratorType parameter in the constructor now changed from `boolean` type to `IteratorType` const enum type.
- - The type of `TreeNode.color` is now changed from `boolean` to `TreeNodeColor` const enum.
- - Turn some member exports into export-only types.
- ### Fixed
- - Fixed wrong iterator error message.
- ## [4.1.4] - 2022.09.07
- ### Added
- - Add some notes.
- ### Changed
- - Optimize hash container.
- - Abstracting out the hash container.
- ### Fixed
- - Fixed tree get height function return one larger than the real height.
- - Tree-shaking not work in ES module.
- - `Queue` and `Deque` should return `undefined` when container is empty.
- ## [4.1.4-beta.0] - 2022.08.31
- ### Added
- - Add function update key by iterator.
- - Add iterator copy function to get a copy of itself.
- - Add insert by iterator hint function in tree container.
- ### Changed
- - Changed OrderedMap's iterator pointer get from `Object.defineProperty'` to `Proxy`.
- - Improve iterator performance by remove some judgment.
- - Change iterator type description from `normal` and `reverse` to boolean.
- ## [4.1.2-beta.0] - 2022.08.27
- ### Added
- - Make `SequentialContainer` and `TreeBaseContainer` export in the index.
- ### Changed
- - Change rbTree binary search from recursive to loop implementation (don't effect using).
- - Reduce memory waste during deque initialization.
- ### Fixed
- - Fixed priority queue not dereference on pop.
- ## [4.1.1] - 2022.08.23
- ### Fixed
- - Forgot to reset root node on rotation in red-black tree delete operation.
- - Fix iterator invalidation after tree container removes iterator.
- ## [4.1.0] - 2022.08.21
- ### Changed
- - Change some functions from recursive to loop implementation (don't effect using).
- - Change some iterator function parameter type.
- - Change commonjs target to `es6`.
- - Change `Deque` from sequential queue to circular queue.
- - Optimize so many places (don't affect using).
- ### Fixed
- - Fix `Vector` length bugs.
- ## [4.0.3] - 2022-08-13
- ### Changed
- - Change `if (this.empty())` to `if (!this.length)`.
- - Change some unit test.
- - Change class type and optimized type design.
- ### Fixed
- - Fix can push undefined to deque.
- ## [4.0.0] - 2022-07-30
- ### Changed
- - Remove InternalError error as much as possible (don't affect using).
- - Change `HashSet` api `eraseElementByValue`'s name to `eraseElementByKey`.
- - Change some unit tests to improve coverage (don't affect using).
- ## [4.0.0-beta.0] - 2022-07-24
- ### Added
- - Complete test examples (don't effect using).
- - The error thrown is standardized, you can catch it according to the error type.
- ### Changed
- - Refactor all container from function to class (don't affect using).
- - Abstracting tree containers and hash containers, change `Set`'s and `Map`'s name to `OrderedSet` and `OrderedMap` to distinguish it from the official container.
- - Change `OrderedSet` api `eraseElementByValue`'s name to `eraseElementByKey`.
- ### Fixed
- - Fixed so many bugs.
- ## [3.0.0-beta.0] - 2022-04-29
- ### Added
- - Bidirectional iterator is provided for all containers except Stack, Queue, HashSet and HashMap.
- - Added begin, end, rBegin and rEnd functions to some containers for using iterator.
- - Added `eraseElementByIterator` function.
- ### Changed
- - Changed Pair type `T, K` to `K, V` (don't affect using).
- - Changed `find`, `lowerBound`, `upperBound`, `reverseLowerBound` and `reverseUpperBound` function's returned value to `Iterator`.
- ### Fixed
- - Fixed an error when the insert value was 0.
- - Fixed the problem that the lower version browser does not recognize symbol Compilation error caused by iterator.
|