An interactive educational article demonstrating Ukkonen's suffix tree construction algorithm through browser-based visualization, allowing step-by-step observation of tree building, suffix links, and pattern searching with concrete examples.
A technical guide on converting recursive algorithms into iterative implementations using explicit call stack simulation via mutable data structures, with examples covering linked lists, binary trees, and mutually-recursive structures in TypeScript.
This article explains thinnings as witness data structures that prove one list is a sublist of another, representing order-preserving mappings between lists as boolean vectors or bitvectors. The author demonstrates how thinnings encode de Bruijn index shift operations and can be composed as morphisms in a category, with practical implementations in Python and Prolog.