vuoi
o PayPal
tutte le volte che vuoi
// LISTADI1.H : Implementazione dinamica della struttura astratta lista
// realizzata con libreria di funzioni. File di SPECIFICA
#ifndef _LISTA_H_ // Compilazione condizionale
#define _LISTA_H_
typedef int E; // Def. del tipo di el. della lista
struct Record; // Predichiarazione
typedef Record* L; // Def. del tipo puntatore a Record
struct Record { // Tipo record costituito da
E elem; // campo informazione
L punt; // campo puntatore al prossimo
nodo della lista
};
void start(L& l); // Inizializza la lista
bool empty(const L& l); // Test di lista vuota
bool full(const L& l); // Test di lista piena
void inserisce(L& l, const E e); // Inserimento di un elemento (mantiene la lista
ordinata)
bool elimina(L& l, const E e); // Cancellazione di un elemento
void stampa(const L l); // Stampa la lista
#endif
#include <iostream.h>
#include "lista.h"
//Prototipi di funzioni definite in questo modulo
void presenta_menu(int& scelta);
void inserimento(L& l);
void estrazione(L& l);
void print(const L& l);
void main(void) {
L l; //definisce variabile di tipo lista
int scelta, esci=0;
start(l); // inizializza la lista
do {
presenta_menu(scelta);
switch (scelta) {
case 1: inserimento(l);break;
case 2: estrazione(l);break;
case 3: print(l);break;
case 4: esci=1;break;
default: cout << "\n opzione errata!";
}
} while (!esci);
}
void presenta_menu(int& scelta) {
do {
// stampa il menu' delle operazioni previste
cout<<"\n Gestione di una lista dinamica ORDINATA";
cout<<"\n1) Inserimento di un elemento\n ";
cout<<"\n2) Cancellazione di un elemento\n ";
cout<<"\n3) Visualizza la lista\n ";
cout<<"\n4) Fine\n ";
cout<<"\n Inserisci una opzione: ";
cin>>scelta;
cout << "\n";
} while ((scelta<1)||(scelta>4));
}
void inserimento(L& l) {
E e ; cout<<"Opzione 1 - inserimento di un elemento\n ";
cout<<"elemento= "; cin>>e;
if (!full(l)) inserisce(l,e);
else cout<<"\n Lista piena\n ";
}
void estrazione(L& l) {
E e; cout<<"Opzione 2 - cancella un elemento\n ";
if (!empty(l)) {
cout<<"elemento da eliminare= "; cin>>e;
if (elimina(l,e))
cout<<"\nelemento = "<<e << "cancellato!";
else cout<<"Elemento non presente nella lista.\n ";
}
else cout<<"Lista vuota cancellazione impossibile\n ";
}
void print(const L& l) {
cout<<"Opzione 3 - stampa della lista\n ";
if (!empty(l))
stampa(l);