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