👤

Sa se insereze dupa fiecare numar strict pozitiv un nou nod ce retine produsul numerelor din lista initiala. dupa fiecare modificare efectuata.
va rog !!!!! În 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;

   }

   else p=p->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;;

       }

       else p=p->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:

am corectat codul... arunci lucra bine numai pentru pozitive... :))), acum lucrează şi pentru elemente negative în listă... am lăsat în cod şi afişarea produsului elementelor listei.