Огромное количество времени угрохал на эту короткую статью :) Дело в том, что она потребовала осмысления некоторого количества теории и выбора оптимальных структур данных. Наслаждайтесь.