Набрёл на полезные структуры данных, которые не встретишь в учебниках.
- Строп - хранит длинную строку в виде дерева, состоящего из небольших подстрок.
- Буферное окно - динамический массив, позволяющий эффективную вставку и удаление элемента в некоторой области.
- Таблица фрагментов - представление текстового документа, редактируемого в текстовом редакторе.
Редактор Руднева, а точнее RAND Editor, лежащий в его основе, построен как раз на таблице фрагментов. Был бы интересный челлендж: вытащить из тех исходников реализацию таблицы фрагментов и переписать на современный Си++ или Rust.