Algorithms and Data Structures Explained and Implemented in JavaScript
The documentation and code quality is all good.<p>The implementation choices leave some things to be desired. The Queue and Stack implementations are Linked Lists instead of array backed, the hash table is closed instead of (the only barely more complicated) open Robin hood hash table scheme, the union-find/disjoint-set implementation doesn't have path compression or rank unions.<p>Overall very good, but it could be Great (tm) with just a little bit of work.