vuoi
o PayPal
tutte le volte che vuoi
I
PROGRAMMAZIONE
prova scritta del prof. Russo
Implementare in linguaggio C++ un tipo di dato astratto lista con ripetizioni, implementato con una classe Lista. Tale
lista deve essere allocata dinamicamente (si consiglia una realizzazione a puntatori). Ogni elemento della lista dovrà
contenere le seguenti informazioni:
• Valore, di tipo string (si può utilizzare la classe string fornita dalle librerie);
• occorrenze, di tipo int, che indica quanti elementi con quel valore siano stati inseriti.
Come esempio si veda il main di prova proposto con l’output risultante in basso.
Sulla lista dovranno essere realizzati i seguenti metodi (oltre ovviamente a costruttore e distruttore):
Empty()
Verifica se la lista è vuota;
Insert (const string valore[], const int occ[], int dim)
Inserisce I valori presenti nell’array di valori nella lista con le occorrenze indicate nell’array occ (non necessariamente
in maniera ordinata).
Elimina(const string valore)
Elimina un’occorrenza dell’elemento valore dalla lista. Ovviamente se l’elemento era già presente con più di una
occorrenza basta decrementare di uno il numero di occorrenze, altrimenti è necessario eliminare fisicamente
l’elemento dalla lista.
Stampa()
Visualizza a video gli elementi contenuti nella lista con l’occorrenza.
#include <cstdlib>
#include <iostream>
#include <string>
#include "Lista.h"
using namespace std;
int main(int argc, char *argv[]) {
string Valore[4];
int occ[4];
Valore[0] = "paperino"; occ[0] = 2;
Valore[1] = "pippo"; occ[1] = 1;
Valore[2] = "pluto"; occ[2] = 3;
Valore[3] = "topolino"; occ[3] = 1;
Lista *l = new Lista();
l -> insert(Valore, occ, 4);
cout<<"Visualizzo tutta la lista:\n";
l -> stampa();
cout<<"Elimino un'occorrenza di pippo e pluto\n";
l -> elimina("pluto");
l -> elimina("pippo");
cout<<"Visualizzo tutta la lista:\n";
l->stampa();
cout<<"Distruggo la lista\n";
delete l;
system("PAUSE");
return EXIT_SUCCESS;
}
L’output dovrebbe essere di questo tipo:
Visualizzo tutta la lista:
Valore Occorrenze
topolino 3
pluto 3
pippo 1
paperino 2
Elimino un’occorrenza di pluto e pippo
Visualizzo tutta la lista:
Valore Occorrenze
topolino 1
pluto 2