Sunteți pe pagina 1din 3

1.Sa se insereze intre oricare 2 componente,o componenta care memoreaza suma vec inilor.

#include <iostream> #include <fstream> using namespace std; struct nod{int info; nod *next;}; void creare(nod *&p,nod *&u,int x) {nod *q; q=new nod; q->info=x; q->next=0; if(p==0) p=u=q; else u->next=q; u=q; } void afisare(nod *p) { nod *q; q=p; while(q!=0) { cout<< q->info<<" "; q=q->next; } } void inserare(nod *&q,nod *&u,int y) {nod *a; a=new nod; a->info=y; a->next=q->next; q->next=a; if(q==u) u=a; } int main() {int x,w,k=0; nod *p=0,*u; ifstream f("date.in"); while(f>>x) creare(p,u,x); afisare(p); nod *q=p,*a; int w; while(q->next!=0) {w=q->info + q->next->info; inserare(q,u,w); q=q->next->next;

} cout<<endl; afisare(p); return 0; } 2.Sa se insereze inainte de fiecare 0 un 0. #include <iostream> #include <fstream> using namespace std; struct nod {int info; nod *next;}; void creare(nod * &p,nod * &u,int x) {nod *q; q=new nod; q->info=x; q->next=0; if(p==0) p=u=q; else {u->next=q; u=q;} } void afisare(nod *p) {nod *q; q=p; while(q!=0) {cout<<q->info<<" "; q=q->next;} } void inserare_d(nod *q,nod *&u,int y) {nod *a; a=new nod; a->info=y; a->next=q->next; q->next=a; if(q==u) u=a; } int main() {nod *p=0 ,*u; int x; ifstream f("date.in"); while(f>>x) creare (p,u,x); afisare(p); cout<<endl; nod *q,*a; q=p; if(p->info==0) {a=new nod; a->info=0;

a->next=p; p=a; q=p->next; } while(q->next!=0) {if(q->next->info==0) {a=new nod; a->info=0; a->next=q->next; q->next=a; q=q->next; } q=q->next; } afisare(p); return 0; }

S-ar putea să vă placă și