接尾辞配列を文字列形式で閲覧する

接尾辞の先頭 n 文字を表示する効率的な方法。

素朴な方法1:
接尾辞配列の各エントリについて、元ファイルでの該当位置から
n 文字を、ランダムアクセスで読み取り、出力。
問題は、合計で ファイルサイズ * n のデータを読み取る必要があり、
読み取り時間のために実行時間がかかること。

素朴な方法2:
最初に元ファイルをメモリにすべて読み込んでおく。
問題は、メモリ使用量と、最初のオーバーヘッド(応答性が悪い)。

ということで中間をとる方法:
各エントリの接尾辞を、要求があるたびに読み取り、2分木に追加する。
ただし、既に2分木にあるデータだけで足りるならば、読み取らない。
(2つのとなりあうノードをつなげて見ればよい)
ノード中のすべての文字が n 回参照されたら、ノードを解放。路の圧縮。
メモり使用量とオーバーヘッドも抑えられ、
合計読み取り回数は最小限。

で効率的かと思ったが、各文字について参照カウンタが必要なため、
結構メモリを消費するかも。