无需栈的Floodfill算法:16色实现递归

A Stackless Floodfill Automaton

传统的Floodfill算法依赖递归或显式栈来记录回溯路径,这在内存受限的环境中是个难题。Nils M Holm提出了一种巧妙的“无栈Floodfill自动机”方案:利用16个闲置的颜色值作为状态编码,直接在图像像素中存储方向箭头和回溯信息。这种方法完全摒弃了动态数据结构,仅用有限状态机即可实现O(n)复杂度的填充。作者最初在仅有7K内存的BASIC系统上开发此算法,用于文字版扫雷游戏。文章详细展示了状态转换逻辑,并提供了基于早期BASIC语言的极简实现代码,证明了在资源极度受限的硬件上也能优雅解决经典算法问题。

如果你能腾出 16 种颜色,那么就不需要任何栈或其他动态数据结构。

同日更多故事

2026-10-27