bst
ext-ds
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
bst
-
What Cannot Be Skipped About the Skiplist: A Survey of Skiplists and Their Appl
Zip trees are novel but their performance (and therefore also skip lists, since they are isomorphic) lacks behind other linked structures like Treaps and especially LBSTs. [1] I personally find skip lists to be overhyped binary search trees in disguise.
[1] https://rtheunissen.github.io/bst
- Using memory arenas and Go benchmarking to explore binary search trees
-
Exploring the design space of binary search trees
Thank you for sharing this resource, I was not aware of it. I am happy to see the inclusion of LBSTs there too.
Re: binary symmetry, if I'm understanding correctly, another author that makes use of the symmetry is Ben Pfaff in libavl [1]. At the top of [2], which seems a bit misplaced now, I wrote:
> A choice was made to not unify the symmetric cases using the direction-based technique of Ben Pfaff and others because it makes the logic more difficult to follow even though there would be less code overall.
The choice of Go was to provide implementations that are both reliable to benchmark (though not as robust as C or Rust for example) but also easy to read. I would like to further reduce abstraction by decomposing common parts such that all the strategies are "one-file" references. This is then effectively the opposite of what the macro-based implementation achieves. Both have value, of course.
[1] https://adtinfo.org/libavl.html/BST-Node-Structure.html
[2] https://github.com/rtheunissen/bst/blob/main/trees/avl_botto...
ext-ds
-
Exploring the design space of binary search trees
I started this project many years ago when I was coming up with ideas for immutable data structures for the PHP data structures extension: https://github.com/php-ds/ext-ds. I wanted to support access by position in a sorted set, which led to the idea of using binary search trees for both lists and sets. However, I did not expect the scope of this project to increase as much as it did.
The more I read about binary search trees, the more I thought about them, and so down the rabbit hole I went.
-
Make your PHP arrays sweet'n'safe
You're being downvoted by people who evidently aren't aware there are alternatives.
-
php-ds extension
The Github repo hasn't had a new release since 2019, with just one guy being the primary maintainer
-
Poll: usage of the Data Structures extension
This is actually a 3rd party extension, that's why it isn't in core.
- Weekly "ask anything" thread
- What third-party extension or library would you like to see included in php as default?
What are some alternatives?
bst - Well Factored, Non-Recursive, General & Generic BSTs in ANSI C
php-ext-xlswriter - 🚀 PHP Extension for creating and reader XLSX files.
scalar_objects - Extension that adds support for method calls on primitive types in PHP
PHPT - The PHP Interpreter
swoole-cli - SWOOLE-CLI is a php binary distribution composed swoole & php-core & cli & fpm and mostly of common extensions.
polyfill - Compatibility polyfill
tests
mess - Make your PHP arrays sweet'n'safe