>>677
C++のdequeの構造はどう?
適当な大きさのブロックをリンクリストで繋ぐ。
先頭のブロックが空になったら開放。末尾が満杯になったら次のブロックを確保してリンク。

ついでに一個開放したた余剰ブロックはプールしてつぎの確保に使い回すとか