Salve, vorrei chiedervi un consiglio "anomalo":
mi è stato assegnato un progetto (è necessario a passare un esame) che richiede di implementare l'ADT MultiSet (alias Bag) che presenta un metodo add(E) per inserire un elemento nella Bag e un metodo remove() che rimuove un elemento arbitrario dalla Bag.
Mi sono accorto subito che c'era qualcosa che non andava, i progetti assegnati ai miei conpagni sono di norma piuttosto complicati, mentre questo... si implementa con uno stack!!
Siccome devo fornire 4-6 pagine di documentazione, ho chiesto al prof se magari non ci fosse un errore di stampa e quel remove() non fosse in realtà un remove(E), come dovrebbe essere in un vero MultiSet; mi ha però risposto che è giusto così e che sono stato semplicemente fortunato.
Ho quindi cominciato a sviluppare il mio progettino implementando questo stack, che è l'unica cosa di cui necessito, con un array, con una LinkedList e una DoublyLinkedList e notando che sono, come le ho scritte, in ordine decrescente di efficenza.
Su cosa potrei ancora focalizzarmi e cercare di sviluppare ulteriormente per dare un certo spessore al progetto? Mi sembra che altre strutture dati per l'implementazione non sarebbero nemmeno lontanamente efficienti come uno stack o una coda, ma allo stesso tempo non so come ottimizzare ulteriormente queste strutture!!
Grazie
Michele