Граф поверх коряги с массивами.
Добавлено: 04 апр 2017, 06:53
Есть коряга. Именно коряга, деревом это называть рано. Причём, коряга не бинарная, а с произвольным количеством непосредственных потомков одного узла. Узлы коряги содержат динамические массивы экземпляров класса, назовём его B. Указатели инкапсулированы, здесь проблем нет. Проблемы начинаются в другом месте. Экземпляры B содержат динамические массивы экземпляров другого класса, назовём его S1. Экземпляры S1 содержат динамические массивы экземпляров ещё одного класса, назовём его S2. Экземпляры же S2 содержат массивы по четыре элемента в каждом экземпляров ещё одного класса, назовём его P. И вот здесь то и начинаются проблемы. А проблема в том, что экземпляры P должны быть связаны между собой в граф, полностью игнорирующий границы объектов. И рёбра этого графа должны выдерживать добавление: узла дерева, экземпляра B, экземпляра S1 или экземпляра S2. А при каждом добавлении элемента весь массив переезжает на новое место. Хорошо хоть при добавлении узла коряги не переезжают на новые места сразу все массивы во всех непосредственных потомках непосредственного предка нового узла.