Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //scrieti o functie care primeste ca parametru adresa listei si insereaza dupa fiecare nr pozitiv valoarea minima care exista in lista
- //afisati lista obtinuta
- #include <fstream>
- using namespace std;
- ifstream fin("15n2010-1.in");
- ofstream fout("15n2010-1.out");
- int minz=32000;
- struct nod{ int info; nod *urm; }; nod v;
- void Pmin(nod *prim)
- {
- nod*p=prim;
- while(p!= NULL)
- { if(minz>p->info)
- minz=p->info;
- p=p->urm;
- }
- }
- void afis(nod *prim)
- { nod*p=prim;
- while(p!=NULL)
- { fout<<p->info<<" ";
- p=p->urm;
- }
- }
- void creare(nod *&prim)
- {
- int nr; nod *sf;
- fin>>nr;
- if(prim==NULL)
- {
- prim=new nod;
- prim->info=nr;
- prim->urm=NULL;
- sf=prim;
- }
- fin>>nr;
- while(nr!=0)
- {
- nod *p;
- p=new nod;
- p->info=nr;
- p->urm=prim;
- prim=p;
- fin>>nr;
- }
- }
- void Inserare_dupa(int vald, int valn, nod *prim)
- { nod *p, *q;
- q=prim;
- while(q->info!=vald)
- q=q->urm;
- p=new nod;
- p->info=valn;
- p->urm=q->urm;
- q->urm=p;
- }
- void Sterge_nod(nod*&prim, int val)
- { nod *p, *aux;
- if(prim->info==val)
- { aux=prim; prim=prim->urm; Inserare_dupa(p->info, minz, p); }
- else {p=prim; while(p->urm->info!=val) p=p->urm;
- aux=p->urm;
- if(aux->urm==NULL) p->urm=NULL;
- else p->urm=aux->urm;
- Inserare_dupa(p->info, minz, p);
- }
- }
- int main()
- { creare(v);
- Pmin(v);
- afis(v);
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement