Informatică, întrebare adresată de BebePanda, 8 ani în urmă

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 de boiustef
0

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:

Alte întrebări interesante