Ajutoooooooooooor va rog urgent
1. Compilaţi şi executaţi programul de mai sus.
2. Adăugaţi o funcţie programului de mai sus astfel încât să calculeze numărul de noduri pozitive/negative ale listei.
3. Adăugaţi o funcţie programului de mai sus astfel încât să afişeze elementele divizibile cu 3 şi cu 5 ale nodurilor listei.
4. Scrieţi o funcţie care să şteargă din lista specificată toate nodurile care au ca informaţie valoarea 7.
5. Scrieţi o funcţie ce se inserează după fiecare nod, ce conţine valoarea 10, un nou nod cu valoarea respectivă egală cu -15. Informaţiile din lista modificată se afişează din nou pe ecran.
6. Scrieţi o funcţie ce elimina toate nodurile, ce conţin valori numerice pare.
Răspunsuri la întrebare
IN POZA AI ATASA PRIMA CERINTA, ADICA EXECUTAREA PROGRAMULUI
2.
void PozNeg(Lista Prim){
Lista v;
int poz=0,neg=0;
for(v=Prim;v;v=v->urm){
if(v->inf<0)
neg++;
if(v->inf>0)
poz++;
}
cout<<"Nr elementelor pozitie este "<<poz<<", iar al celor negative este "<<neg<<endl;
cout<<endl;
}
3.
void Div3si5(Lista Prim){
Lista v;
for(v=Prim;v;v=v->urm)
if(v->inf%3==0&&v->inf%5==0) //if(v->inf%15==0)
cout<<v->inf<<' ';
cout<<endl;
}
4.
void StergereElementInterior(Element* predecesor) {
Element* deSters = predecesor->urmator;
predecesor->urmator = predecesor->urmator->urmator;
delete deSters;
}
void StergereValoare(Element* &cap) {
if (cap == NULL)
return;
if (cap->valoare == 7) {
Element* deSters = cap;
cap = cap->urmator;
delete deSters;
return;
}
Element* elem = cap;
while (elem->urmator != NULL && elem->urmator->valoare != 7)
elem = elem->urmator;
if (elem->urmator != NULL)
StergereElementInterior(elem);
}
5.
void InserareInterior(Element* &cap, Element* p, Date val) {
Element *elem = new Element;
elem->valoare = val;
elem->urmator = NULL;
if (cap == NULL) {
cap = elem;
return;
}
if (cap == p) {
elem->urmator = cap;
cap = elem;
return;
}
elem->urmator = p->urmator;
p->urmator = elem;
}
6. functia de la 4