アンドゥ/リドゥの実装方法に、定番の手法・理論・アルゴリズムってある?
一手順ごとにその都度の状態を全てバッファに保存する力技か、
あるいは一手順ごとの操作を記録して、それを逆行/再実行。
この2パターンに大別されるのかなぁ。

前者は比較的容易に実装できる反面、メモリやCPUに無駄に負荷がかかる。
後者は効率的だけど実装が容易でない。
ひとつひとつ、どんな細かい操作にも全てにアンチの手順を用意する必要がある。

実際のところ、どういった具合に処理してるの?