Наиболее эффективная структура данных для добавления стилей к тексту

Я ищу лучшую структуру данных для добавления стилей к тексту (скажем, в текстовом редакторе). Структура должна позволять следующие операции:

  1. Быстрый поиск всех стилей в абсолютной позиции X
  2. Быстрая вставка текста в любую позицию (стили после этой позиции должны быть перемещены).
  3. Каждая позиция текста должна поддерживать произвольное количество стилей (перекрытие).

Я рассматривал списки / массивы, которые содержат текстовые диапазоны, но они не позволяют быструю вставку без пересчета позиций всех стилей после точки вставки.

Древовидная структура с относительное смещение поддерживает # 2, но дерево будет быстро вырождаться, когда я добавлю к тексту много стилей.

Какие-либо другие варианты?

10
задан Jonas 20 October 2011 в 09:36
поделиться