Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include<iostream>
- using namespace std;
- class Lista {
- private:
- typedef struct nod {
- int info;
- struct nod *next;
- } Nod;
- Nod* prim;
- public:
- Lista();
- void adaugare(int x);
- void afisare();
- void suma();
- void stergerePare();
- void inversareLista();
- };
- Lista::Lista() {
- prim=NULL;
- }
- void Lista:: adaugare(int x) {
- nod * v;
- v=new nod;
- v->info=x;
- v->next=NULL;
- if(prim==NULL) {
- prim=v;
- } else {
- nod* temp=prim;
- while(temp->next!=NULL) {
- temp=temp->next;
- }
- temp->next=v;
- }
- }
- void Lista::afisare() {
- nod *temp=prim;
- while(temp!=NULL) {
- cout<<temp->info<<" ";
- temp=temp->next;
- }
- cout<<endl;
- }
- void Lista::suma(){
- if(prim!=NULL && prim->next!=NULL){
- nod * q,*p;//parcurge lista
- q=prim;
- p=q->next;
- while(p!=NULL){
- nod *temp;// in el se calculeaza suma a 2 elem consecutive;
- temp=new nod;
- temp->info=p->info + q->info;
- temp->next=p;
- q->next=temp;
- q=p;
- p=p->next;
- }
- }
- }
- void Lista::stergerePare(){
- while(prim!=NULL && prim->info%2==0){
- nod *temp=prim;
- prim=prim->next;
- delete temp;
- }
- if(prim!=NULL){
- nod*p=prim;
- nod*q=prim->next;
- while(q!=NULL ){
- if(q->info%2==0){
- p->next=q->next;
- delete q;
- q=p->next;
- }else{
- p=q;
- q=q->next;
- }
- }
- }
- }
- void Lista::inversareLista(){
- nod *r, *p, *q;
- r=NULL;
- p=prim;
- q=NULL;
- while(p!=NULL){
- q=p->next;
- p->next=r;
- r=p;
- p=q;
- }
- prim=r;
- }
- int main() {
- int n=0;
- Lista pare, impare;
- cout<<"dati n= ";
- cin>>n;
- while(n!=-1){
- /* if(n%2==0) {
- pare.adaugare(n);
- } else {
- impare.adaugare(n);
- }*/
- impare.adaugare(n);
- cout<<"dati n= ";
- cin>>n;
- };
- /*cout<<"Lista pare ";
- pare.afisare();*/
- cout<<"Lista: ";
- impare.afisare();
- //cout<<" Elementele inserate sunt suma a 2 consecutive"<< endl;
- //impare.suma();
- //impare.afisare();
- //cout<<"stergere pare ";
- //impare.stergerePare();
- //impare.afisare();
- cout<<"inversare lista ";
- impare.inversareLista();
- impare.afisare();
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment