edutecnica

Esercizio 6       

Scrivi un programma per realizzare una lista di interi inseriti da tastiera, l'inserimento deve essere effettuato da una funzione (push) che inserisce un elemento in fondo alla lista. Il programma deve prevedere la presenza di una funzione (pop) che toglie un elemento scelto dall' dall'utente, presente nella lista, la stessa funzione si occuperà di riorganizzare la struttura dopo tale operazione.


#include<iostream>
using namespace std;

/* funzione push */
int *push(int *h,int &j) {
cout<<"ins.:";cin>>h[j];
j++;
h[j]=0; //marcatore di fine lista
return h;
}//fine push

/* funzione pop */
int *pop(int *h,int &j){
int index,i;
cout<<"indice:";cin>>index;
//riorganizzo la lista
//se la lista non è vuota (h[index]!=0)
//e se index>=0;
if(h[index] && index>=0){
     for(i=index;i<j;i++)h[i]=h[i+1];
     j--;
     h[j]=0;//marcatore di fine lista
}

return h;
}//fine pop

main(){
int i,j=0;//j memorizza la lunghezza della lista
int *p=new int;
char ch;
do{
     cout<<"\ni]inserisci\n";
     cout<< "t]togli\n";
     cout<< "x]exit\n";
     cin>>ch;
     ch=tolower(ch);
     switch(ch){
          case 'i':p=push(p,j);break;
          case 't':p=pop(p,j);break;
          default:break;
     }//fine switch

i=0;
if(p[i]) //se la lista non è vuota
     do{// routine di stampa
          cout<<p[i]<<" ";
          i++;
     }while(p[i]);
}while(ch!='x');
} //fine main