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:
#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: