Voglio implementare un Set in C. È corretto usare un elenco collegato, quando si crea il SET, o dovrei usare un altro approccio?Come implementare un set?
Come di solito implementare il proprio set (se necessario).
NOTA: Se io uso l'approccio lista concatenata, io probabilmente hanno le seguenti complessità per impostare il mio operazioni:
- init: O (1);
- destroy: O (n);
- inserire: O (n);
- rimuovere: O (n);
- unione: O (n * m);
- intersezione: O (n * m);
- differenza: O (n * m);
- nome: O (n);
- issubset: O (n * m);
- setisequal: O (n * m);
O (n * m) sembra essere un po 'troppo grande soprattutto per i dati enormi ... C'è un modo per implementare il mio set più efficiente?
Senza sapere cosa si vuole ottenere è difficile aiutare. Se vuoi solo avere una matrice come struttura allora Vector è probabilmente la tua strada da percorrere.Ho assunto che stai effettivamente usando C++. L'STL ha un sacco di cose che è destinato ad aiutarti. – thecoshman
C++ implementa la sua classe impostata come un albero binario bilanciato, probabilmente è una buona scelta. –
@thecoshman Poiché la sua domanda è stata contrassegnata come C, penso che possiamo supporre che non stia utilizzando C++. –