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

Să se insereze după primul număr impar din listă, un nod nou ce va conține numărul minim din listă creată inițial.
în c++!
va rog frumos!!!
cat mai repede!!!​

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, *r=NULL;

int n,minim;

void adauga_dupa_r(nod *p, nod *r, int minim)

{

   nod *nou = new nod;

   nou->info=minim;

   if (r->urm!=NULL)

   {

       nou->urm=r->urm;

       r->urm=nou;

   }

   else r->urm=nou;

}

void creareLista(nod *&Cap, nod *&r, int &minim)

{

   int i,inf;

   nod *p, *q;

   Cap=NULL;

   cout<<"Dati numarul de elemente al listei n = ";cin>>n;

   cout<<"Dati prima informatie ";cin>>inf;

   minim=inf;

   p=new nod;

   p->info=inf;

   p->urm=NULL;

   Cap=p; q=p;

   if (inf%2==1) r=p;

   for(i=2;i<=n;i++)

   {

       cout<<"Dati informatia "<<i<<" = ";

       cin>>inf;

       if (inf<minim) minim=inf;

       p=new nod;

       p->info=inf;

       p->urm=NULL;

       q->urm=p;

       q=p;

       if (inf%2==1 && r==NULL) r=p;

   }

}

void afisare(nod *Cap)

{

   nod *p=Cap;

   while (p != NULL)

   {

       cout << p->info << " ";

       p = p->urm;

   }

   cout << "\n";

}

int main()

{

   nod* Cap = NULL;

   creareLista(Cap, r, minim);

   afisare(Cap);

   cout << "Inserare nod cu minim dupa primul impar \n";

   if (r!=NULL)

   {

       adauga_dupa_r(Cap,r,minim);

       afisare(Cap);

   }

   else cout << "opss, impare nu-s in lista..";

}

Explicație:


boiustef: când cream lista, paralel găseam şi minimul şi adresa nodului cu primul impar în listă ca mai apoi după el să inserez un nou nod corespunzător cu minimul
boiustef: am folosit lista simplu înlănţuită, că nu erau puse condiţii la tipul listei...
Alte întrebări interesante