👤
BebePanda
a fost răspuns

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ăspuns :

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: