¿Cuál es una buena manera de representar un conjunto disperso de enteros (realmente direcciones de memoria C) de una manera compacta y rápida. Ya sé sobre las cosas obvias como los vectores de bits y la codificación de longitud de ejecución. pero quiero algo mucho más compacto que una palabra por conjunto de elementos. Necesito agregar y eliminar elementos y probar la membresía. No necesito otras operaciones de conjunto, como la unión.¿Representa los conjuntos de enteros dispersos?
Leí acerca de una de esas bibliotecas hace muchos años, pero desde entonces he olvidado su nombre. Creo que fue lanzado como fuente abierta por HP y tenía un nombre de mujer.
La <1 palabra por poco puntero va a ser la parte más difícil. – BCS
No dice cuántas direcciones almacenará en el conjunto. Eso es crítico. Además, no dices si provienen de Malloc. –
Puede ver las respuestas a una pregunta similar que hice: http://stackoverflow.com/questions/36106/what-are-some-alternatives-to-a-bit-array – erickson