Estoy buscando una estructura de datos abstracta que represente una colección de conjuntos de manera que ningún conjunto en la colección sea un subconjunto de otro conjunto en la colección.Colección de conjuntos que no contienen conjuntos que son un subconjunto de otro en la colección
Esto significa que en el inserto se cumplen las siguientes condiciones:
A. Inserción de un elemento que ya es un subconjunto de otro elemento devolverá la colección original.
B. Insertar un elemento que es un superconjunto de cualquier otro elemento dará como resultado una colección con el superconjunto añadido y los subconjuntos eliminados.
Suponiendo un pedido de los elementos del conjunto, se puede usar un árbol de prefijos para representar la colección. Esto permite que la condición A se maneje muy rápidamente (es decir, ya no es necesario verificar la condición de lo que sería para insertar el subconjunto), sin embargo, cumplir con la condición B lleva tiempo.
Me pregunto si hay una estructura de datos que permita que B también se cumpla rápidamente.
¿Es el problema el requisito "permite que B se cumpla rápidamente"? Parece que puedes imaginar cuál sería la solución directa. Simplemente codificaría la solución directa, luego vería si cumple con mis necesidades de rendimiento de espacio/tiempo. Tal vez la solución directa sea lo suficientemente buena. – shadit
Me temo que no veo cómo un árbol de prefijos ayudaría mucho. No todos los subconjuntos son prefijos. –