Questo è il programma che sto cercando di far partire
// direttive di inclusione
#include <iostream>
#include <alloc>
#include <stdlib.h>
#include "lista.h"
using namespace std;
//prototipi delle funzioni
void ListaVuota (nodo *l);
nodo * InserisciElem (nodo *l, Bool ordine);
nodo * RimuoviElem (nodo *l, Bool ordine);
nodo * CercaElem (nodo *l, Bool ordine);
nodo * AppendElem (nodo *l, Bool &ordine);
nodo * PushElem (nodo *l, Bool &ordine);
nodo * PopElem (nodo *l);
//funzioni
void ListaVuota (nodo *l){
if (is_empty_list(l)) cout<<"\n la lista e' vuota \n ";
else cout<<"la lista e' non vuota" ;
}// fine del sottoprogramma ListaVuota
nodo * InserisciElem (nodo *l, Bool ordine){
int elemento;
if (ordine == VERO) { // se la lista e' ordinata procede
cout<<"\nElemento da inserire: ";
cin>>elemento;
l = insert_list (l,elemento);
}
else{ // se la lista e' non ordinata avverte l'utente
cout<<"\nImpossibile procedere: la lista e' non ordinata \n;
}
return l;
}// fine del sottoprogramma Inserisci
nodo * RimuoviElem (nodo *l, Bool ordine){
int elemento;
if (ordine == VERO){ // se la lista è ordinata procede
cout<<"\nElemento da eliminare: ";
cin>>elemento;
l = delete_list (l,elemento);
}else { // se la lista e' non ordinata avverte l'utente
cout<<"\nImpossible procedere: la lista e' non ordinata\n";
}
return l;
}// fine del sottoprogramma RimuoviElem
nodo * CercaElem (nodo *l, Bool ordine){
int elemento;
if (ordine == VERO) { // se la lista e' ordinata procede
cout<<"\nElemento da cercare: ";
cin>>elemento;
if (search_list (l,elemento)) cout<<"\nElemento presente\n;
else cout<<"\nElemento non presente\n";
} else { // se la lista e' non ordinata avverte l'utente
cout<<"\nImpossibile procedere: la lista e' non ordinata\n";
}
return l;
}// fine del sottoprogramma CercaElem
nodo * AppendElem (nodo *l, Bool ordine){
int elemento;
ordine == FALSO;
cout<<"\nElemento da inserire in coda: ";
cin>>elemento;
return append_list (l,elemento);
} // fine del sottoprogramma AppendElem
nodo * PushElem (nodo *l, Bool ordine){
int elemento;
ordine == FALSO;
cout<<"\nElemento da inserire in testa: ";
cin>>elemento;
return push_list (l,elemento);
}// fine del sottoprogramma PushElem
nodo * PopElem (nodo *l){
int elemento;
nodo *lista;
if (l !=NULL) { // se la lista e' non vuota
lista = pop_list (l,elemento);
cout<<"\nLa lista e' vuota\n";
lista = l;
}
return lista;
} // fine del sottoprogramma PopElem
//main
int main(int argc, char *argv[])
{nodo *lista;
Bool uscita = FALSO;
Bool ordine;
int selezione;
init_lista (&lista); //inizializza la lista
do {
if (is_empty_list(lista)) ordine = VERO; // una lista vuota e' ordinata
cout<<"\n***************************************************"
<<"*****************************************************"
<<"* Men-per la gestione di una lista "
<<"di reali allocata dinamicamente *"
<<" Digitare: "
<<"* 0 per uscire dal programma "
<<"* 1 per verificare se la lista e' vuota "
<<"* 2 per inserire un elemento di una lista ordinata "
<<"* 3 per eliminare un elemento di una lista ordinata "
<<"* 4 per cercare un elemento di una lista ordinata "
<<"* 5 per inserire un elemento alla fine di una lista "
<<"* 6 per inserire un elemento all'inizio di una lista"
<<"* 7 per prelevare l'elemento in cima alla lista "
<<"* 8 per invertire la lista "
<<"* 9 per stampare la lista sullo schermo "
<<" *"
<<"*****************************************************"
<<"***************************************************\n";
do {
cout<<"Digitare selezione: " ;
cin>> selezione;
}while (selezione<0 || selezione > 9);
switch (selezione){
case 0 : uscita = VERO; break;
case 1 : ListaVuota (lista); break;
case 2 : lista = InserisciElem (lista,ordine); break;
case 3 : lista = RimuoviElem (lista,ordine); break;
case 4 : CercaElem (lista,ordine); break;
case 5 : lista = AppendElem (lista,ordine); break;
case 6 : lista = PushElem (lista,ordine); break;
case 7 : lista = PopElem (lista); break;
case 8 : lista = inverti_list (lista); ordin = FALSO; break;
case 9 : print_list (lista); cout<<"\n\n"; break;
}
}while (uscita == FALSO);
system("PAUSE");
return 0;
}// fine del main