Global Rebuilding, Coroutines, and Defunctionalization

Introduction In 1983, Mark Overmars described global rebuilding in The Design of Dynamic Data Structures . The problem it was aimed at solving was turning the amortized time complexity bounds of batched rebuilding into worst-case bounds. In batched rebuilding we perform a series of updates to a data structure which may cause the performance of operations to degrade, but occasionally we expensively…