vuoi
o PayPal
tutte le volte che vuoi
}
if (pmax==p)
{ p=p->succ;
delete pmax;
}
else
{ precmax->succ=pmax->succ;
delete pmax;
}
}
void CreaLista (elemento* & pelem, int esc,int & c)
{ int app;
elemento* p1;
cout<<"Inserisci il "<<c<<"^ elemento: ";
cin>>app;
cout<<endl;
if (app!=esc)
{ pelem=new elemento;
pelem->valore=app;
c=c+1;
CreaLista(pelem->succ,esc,c);
}
else
pelem=NULL;
}
void StampaLista (elemento* pelem)
{ elemento* p1;
p1=pelem;
while (p1!=NULL)
{ cout<<p1->valore<<" ";
p1=p1->succ;
}
}
int main ()
{ int uscita;
int i=1;
elemento* p=NULL;
cout<<"Inserisci il valore per cui vuoi terminare l'inserimento: ";
cin>>uscita;
cout<<endl;
CreaLista(p,uscita,i);
EliminaGrande(p);
StampaLista(p);
cout<<endl;
system("PAUSE");
return 0;
}
PROBLEMA 2
#include <iostream>
#include <cstdlib>
using namespace std;
struct elemento
{ int valore;
elemento* succ;
};
typedef elemento* pelem;
void LeggiLista(pelem & p, int & n)
{ p=new elemento;
pelem paux;
cout<<"Inserisci elemento n.1"<<": ";
cin>>p->valore;
paux=p;
for(int i=1; i<n; i++)
{ paux->succ=new elemento;
paux=paux->succ;
cout<<"Inserisci elemento n."<<i+1<<": ";
cin>>paux->valore;
}
paux->succ=NULL;
};
pelem Intersezione (pelem p1, pelem p2)
{ pelem inter;
pelem pap=inter;
pelem paux=p2;
while (p1->succ!=NULL)
{ while(paux->succ!=NULL)
{ if(p1->valore==paux->valore)
{ pap=new elemento;
pap->valore=p1->valore;
pap=pap->succ;
}
else;
paux=paux->succ;
}
paux=p2;
p1=p1->succ;
}
pap->succ=NULL;
return inter;
}
void StampaLista(pelem p)
{ while(p!=NULL)
{ cout<<p->valore;
p=p->succ;
}
}
int main()
{ pelem l1,l2,l3;
int n1,n2;
cout<<"Quanti valori nella prima lista?";
cin>>n1;
LeggiLista(l1,n1);
cout<<"Quanti valori nella seconda lista?";
cin>>n2;
LeggiLista(l2,n2);
StampaLista(l1);
StampaLista(l2);
l3=Intersezione(l1,l2);
StampaLista(l3);
system("PAUSE");
return 0;
}
PROBLEMA 3
#include <iostream>
#include <cstdlib>
using namespace std;
struct elemento
{ int valore;
elemento* succ;
};
typedef elemento* pelem;
typedef int* vettore;
void LeggiVettore(vettore &v, int &n)
{ do
{ cout<<"Quanti valori vuoi inserire? ";
cin>>n;
}
while(n<=0);
v=new int[n];
for(int i=0; i<n; i++)
{ cout<<"Inserisci elemento di posto "<<i+1;
cin>>v[i];
}
}
void ListaInverso (pelem & p, vettore &v, int n)
{ pelem paux;
p=NULL;
for(int i=0; i<n; i++)
{ paux=new elemento;
paux->valore=v[i];
paux->succ=p;
p=paux;
}
delete []v;
}
void StampaLista(pelem p)
{ if(p!=NULL)
{ cout<<p->valore<<" ";
StampaLista(p->succ);
}
else;
}
int main()
{ pelem punt;
vettore vett;
int num;
LeggiVettore(vett,num);
ListaInverso(punt, vett, num);
StampaLista(punt);
system("PAUSE");
return 0;
}
PROBLEMA 4
#include <iostream>
#include <cstdlib>
using namespace std;
struct elemento
{ int valore;
elemento* succ;
};
typedef elemento* pelem;
void CreaListaPot(pelem & p, int b, int n)
{ int pot=1;
if(n!=0)
{ pelem paux;
p=new elemento;
p->valore=1;
paux=p;
for(int i=1; i<n; i++)