Die meisten effizienten Datenstruktur zum hinzufügen von Stilen auf text

Ich bin auf der Suche nach der besten Datenstruktur fügen Sie Stile hinzu, um einen text (sagen wir in einem text-editor). Die Struktur sollte ermöglichen die folgenden Operationen:

  1. Schnellen nachschlagen aller Stilrichtungen, an absolute position X
  2. Schnelles einfügen von text an einer beliebigen position (Stile nach, die position verschoben werden muss).
  3. Jeder position des Textes muss die Unterstützung einer beliebigen Anzahl von Stilen (überlappung).

Habe ich mir überlegt Listen/arrays, die text enthalten, reicht aber nicht erlauben schnelles einfügen ohne Neuberechnung der Positionen aller Stilrichtungen nach der insert-Punkt.

Einer Baum-Struktur mit den relativen offsets unterstützt die #2, aber der Baum entarten schnell, wenn ich viele Formatvorlagen auf den text an.

Andere Optionen?

  • Haben Sie sich entschieden, wie ist der text selbst gespeichert? Was auch immer die Struktur der text verwendet hat, um effizient zu handhaben Insertionen/Deletionen, so dass es möglich sein könnte, zu erweitern, durch den text, zeigen Sie auf die Stile, die eher als die andere Weise herum. So etwas wie begleitende jedes Zeichen mit einem Zeiger auf ein array/Liste der anwendbaren Stile. Sie sollten in der Lage sein zu teilen, die Stile und das array unter den Zeichen, und Sie könnten der Veranstaltung in der Lage sein zu teilen, der Zeiger selbst.
  • Bitte poste das als Antwort, damit kann ich kommentieren.
Schreibe einen Kommentar