Quiero implementar un conjunto en C. ¿Está bien utilizar una lista vinculada, al crear el SET, o debería usar otro enfoque?¿Cómo implementar un conjunto?
¿Cómo se suele implementar su propio conjunto (si es necesario).
NOTA: Si utilizo el enfoque de lista enlazada, probablemente tendrá las siguientes complejidades de Set mis operaciones:
- init: O (1);
- destroy: O (n);
- inserte: O (n);
- eliminar: O (n);
- unión: O (n * m);
- intersección: O (n * m);
- diferencia: O (n * m);
- ismember: O (n);
- issubset: O (n * m);
- setisequal: O (n * m);
O (n * m) parece que puede ser un poco grande especialmente para datos enormes ... ¿Hay alguna manera de implementar mi Set más eficiente?
Sin saber lo que quiere lograr es difícil de ayudar. Si solo quieres tener una matriz como estructura, entonces Vector es probablemente tu camino a seguir.Supuse que estás usando C++. El STL tiene muchas cosas que te ayudarán. – thecoshman
C++ implementa su clase de conjunto como un árbol binario equilibrado; esa es probablemente una buena opción. –
@thecoshman Como su pregunta fue etiquetada como C, creo que podemos suponer que no está usando C++. –