Să se insereze dupa fiecare numar strict pozitiv din lista un nou nod ce retine produsul numerelor din lista initiala. Afișați lista după fiecare modificiare făcută.
cat mai repede va rog in c++!!!!!
Răspunsuri la întrebare
Răspuns:
#include <iostream>
using namespace std;
struct nod
{
int info;
nod* urm;
};
nod *p, *Cap=NULL;
int n, prod=1;
void afisare(nod *Cap)
{
nod *p=Cap;
while (p != NULL)
{
cout << p->info << " ";
p = p->urm;
}
cout << "\n";
}
void creareLista(nod *&Cap, int &prod)
{
int i,inf;
nod *p, *q;
Cap=NULL;
cout<<"Dati numarul de elemente al listei n = ";cin>>n;
cout<<"Dati prima informatie ";cin>>inf;
prod=prod*inf;
p=new nod;
p->info=inf;
p->urm=NULL;
Cap=p; q=p;
for(i=2;i<=n;i++)
{
cout<<"Dati informatia "<<i<<" = ";
cin>>inf;
prod=prod*inf;
p=new nod;
p->info=inf;
p->urm=NULL;
q->urm=p;
q=p;
}
}
void inserare(nod *prim, int prod)
{
nod *p=prim, *nou;
if (p->info>0)
{
nou=new nod;
nou->info=prod;
if (p->urm!=NULL)
{
nou->urm=p->urm;
p->urm=nou;
}
else p->urm=nou;
}
afisare(prim);
p=nou->urm;
while (p!=NULL)
{
if (p->info>0)
{
nou=new nod;
nou->info=prod;
if (p->urm!=NULL)
{
nou->urm=p->urm;
p->urm=nou;
}
else p->urm=nou;
}
afisare(prim);
p=nou->urm;;
}
}
int main()
{
creareLista(Cap,prod);
cout << "Lista initiala: \n";
afisare(Cap);
cout << "produsul elementelor listei = " << prod << "\n";
cout << "Rezultatele inserarii : \n";
inserare(Cap,prod);
}
Explicație: