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

Va rog frumos sa o rezolvati (total sau partial)

Se da o lista cu numere natural. Sa se creeze doua liste cu alocare dinamica/static, una cu numerele pare din lista initial si cealalta cu numerele impare. Sa se afiseze cele doua liste obtinute.

Răspunsuri la întrebare

Răspuns de boiustef
0

Răspuns:

#include <iostream>

using namespace std;

struct node {

   int info;

   node *next;

};

node *pare=NULL, *imp=NULL;

int n,i,num;

void adauga(node *&p, int num)

{

   node *q=new node, *r;

   q->info=num; q->next=NULL;

   if (p==NULL) p=q;

   else{

      r=p;

      while (r->next!=NULL)

      {

          r=r->next;

      }

      r->next=q;

   }

}

void afisare(node *p)

{

   node *q=p;

   while (q!=NULL)

   {

       cout << q->info << " ";

       q=q->next;

   }

   cout << "\n";

}

int main()

{

   cout << "n= "; cin >> n;

   cout << "introdu " << n << " numere naturale \n";

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

   {

       cin >> num;

       if (num%2==0) adauga(pare, num);

       else adauga(imp, num);

   }

    cout << "Lista parelor: ";

   if (pare!=NULL) afisare(pare);

   else cout << " e vida... \n";

   cout << "Lista imparelor: ";

   if (imp!=NULL) afisare(imp);

   else cout << " e vida...";

}

Explicație:

Am considerat că lista iniţială se introduce de la consolă, nu am creat o listă cu numerele iniţiale, ci numai cu cele pare şi alta cu cele impare

Alte întrebări interesante