Hola, buenas:
Estoy implementando una aplicación en kdevelop, en c++, y necesito crear una estructura para almacenar rangos de manera eficiente. El problema, es que no tengo información inicial de los rangos que me pueden llegar. En este sentido, almacenarlas no es problema. Pero, imaginemos, tengo los siguientes rangos:
1-10-20-30 y me llega un nuevo rango 5-10, o me viene una 5-15, la forma en que puedo realizar la transformación de los rangos siempre tiene problemas. Por un lado parece obvio que deberia separar los rangos de la forma 1-5-10... en el primero de los casos, pero los datos que contenía el rango 1-10 deberían pertenecer a ambos rangos, por lo que encontraría una duplicación de la información, y estoy hablando de miles de datos.
Estaba pensando en realizar una estructura interna a cada uno de los rangos para almacenar subrangos de los mismos. Y esto soluciona el primer caso, pero, con el mismo ejemplo que el anterior, 1-10-20-30, al insertar 5-15, no puedo realizar los subrangos. Y el hecho de dividir la separación de rangos original no es factible, creo, porque los datos internos de 1-10 no puedo dividirlos. Si lo hiciera, perdería información real.
Sé que la explicación es algo abstracta, pero si alguien tiene alguna idea, alguna solución, quizás me abra la mente.
En principio, había pensado en una lista doblemente enlazada que señale los posibles subrangos entre ellos, aunque la actualización de ésta realmente es algo costoso. Pensad también que una vez tenga la estructura implementada, lo más importante para esta aplicación es acceder a los datos de forma rápida.
Gracias de antemano.