/**************************//* ListaDubluInlantuita.h *//**************************/#ifndef LISTA_DUBLA#define LISTA_DUBLAstructnod{nod*llink;nod*rlink;intinfo;};classListaDubluInlantuita{public:nod*FIRST;nod*LAST;ListaDubluInlantuita();voidadaugaInceput(intval);voidadaugaSfarsit(intval);voidadaugaDupaNod(nod*dupa,intval);voidadaugaDupaVal(intdupa,intval);voidstergeNod(nod*rip);voidstergeVal(intval);voidafiseazaSD();voidafiseazaDS();};#endif/****************************//* ListaDubluInlantuita.cpp *//****************************/#include "ListaDubluInlantuita.h"#include <iostream>usingnamespacestd;ListaDubluInlantuita::ListaDubluInlantuita(){FIRST=NULL;LAST=NULL;}voidListaDubluInlantuita::adaugaInceput(intval){nod*nou=newnod();nou->info=val;if(FIRST==NULL){FIRST=nou;LAST=nou;nou->llink=NULL;nou->rlink=NULL;}else{nou->rlink=FIRST;nou->llink=NULL;FIRST->llink=nou;FIRST=nou;}}voidListaDubluInlantuita::adaugaSfarsit(intval){nod*nou=newnod();nou->info=val;if(LAST==NULL)adaugaInceput(val);else{nou->rlink=NULL;nou->llink=LAST;LAST->rlink=nou;LAST=nou;}}voidListaDubluInlantuita::adaugaDupaNod(nod*dupa,intval){nod*nou=newnod();nou->info=val;nou->llink=dupa;nou->rlink=dupa->rlink;if(nou->rlink==NULL)LAST=nou;elsedupa->rlink->llink=nou;dupa->rlink=nou;}voidListaDubluInlantuita::adaugaDupaVal(intdupa,intval){nod*iter=FIRST;if(iter==NULL)cout<<"Lista este vida"<<endl;while(iter!=NULL)if(iter->info==dupa){adaugaDupaNod(iter,val);break;}elseiter=iter->rlink;}voidListaDubluInlantuita::afiseazaSD(){nod*iter=FIRST;if(iter==NULL)cout<<"Lista este vida"<<endl;while(iter!=NULL){cout<<iter->info<<" ";iter=iter->rlink;}}voidListaDubluInlantuita::afiseazaDS(){nod*iter=LAST;if(iter==NULL)cout<<"Lista este vida"<<endl;while(iter!=NULL){cout<<iter->info<<" ";iter=iter->llink;}}voidListaDubluInlantuita::stergeNod(nod*rip){if(rip->llink==NULL)FIRST=rip->rlink;elserip->llink->rlink=rip->rlink;if(rip->rlink==NULL)LAST=rip->llink;elserip->rlink->llink=rip->llink;deleterip;}voidListaDubluInlantuita::stergeVal(intval){nod*iter=FIRST;if(iter==NULL)cout<<"Lista este vida"<<endl;while(iter!=NULL)if(iter->info==val){stergeNod(iter);break;}elseiter=iter->rlink;}
Currently 0 comments