Advertisement
edutedu

liste parcurgere

Oct 15th, 2019
178
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 3.01 KB | None | 0 0
  1. #include <iostream>
  2.  
  3. using namespace std;
  4.  
  5. struct nod
  6. {
  7.     int info;
  8.     nod* adr;
  9. };
  10.  
  11. int n;
  12.  
  13. void parcurgere(nod* v)
  14. {
  15.     nod* c=v;
  16.     while(c)
  17.     {
  18.         cout<<c->info<<" ";
  19.         n++;
  20.         c=c->adr;
  21.     }
  22. }
  23.  
  24. nod* creare2()
  25. {
  26.     nod* prim, *ultim, *p;
  27.     int nr;
  28.     prim=new nod;
  29.     ultim=prim;
  30.     cout<<"Introduceti un numar: "; cin>>nr;
  31.     if (nr==0)
  32.     {
  33.         cout<<"Lista este vida.";
  34.         return 0;
  35.     }
  36.     else
  37.     {
  38.         prim->info=nr;
  39.         prim->adr=NULL;
  40.         cout<<"Introduceti un numar: "; cin>>nr;
  41.         while(nr){
  42.             p=new nod;
  43.             p->info=nr;
  44.             ultim->adr=p;
  45.             ultim=p;
  46.             ultim->adr=NULL;
  47.             cout<<"Introduceti un numar: "; cin>>nr;
  48.         };
  49.         return prim;
  50.     }
  51. }
  52.  
  53. int inserare(nod* &prim , int k, int inf)
  54. {
  55.     nod *q;
  56.     if(k>n+1) return 0;
  57.     else
  58.     {
  59.         nod* p=new nod;
  60.         p->info=inf;
  61.         if(k==1)
  62.         {
  63.             p->adr=prim;
  64.             prim=p;
  65.         }
  66.         else if(k==n+1)
  67.         {
  68.             q=prim;
  69.             while(q->adr)
  70.                 q=q->adr;
  71.             q->adr=p;
  72.             p->adr=NULL;
  73.  
  74.         }
  75.             else
  76.             {
  77.                 q=prim;
  78.                 int ct=1;
  79.                 while(ct<k-1)
  80.                 {
  81.                     q=q->adr;
  82.                     ct++;
  83.                 }
  84.                 p->adr=q->adr;
  85.                 q->adr=p;
  86.             }
  87.          return 1;
  88.     }
  89. }
  90. int stergere(nod* &prim, int j)
  91. {
  92.     nod *q;
  93.     if(j>n) return 0;
  94.     else
  95.     {
  96.         nod* p=new nod;
  97.         if(j==1)
  98.              {
  99.  
  100.                p=prim;
  101.                prim=p->adr;
  102.                delete p;
  103.              }
  104.         else if(j==n)
  105.                {
  106.                 q=prim;
  107.                 while(q->adr->adr)
  108.                     {
  109.                         q=q->adr;
  110.                     }
  111.                 q->adr=NULL;
  112.                 delete q->adr;
  113.                 }
  114.               else
  115.                     {
  116.                         q=prim;
  117.                         int c=1;
  118.                         while(c<j-1)
  119.                             {
  120.                                 q=q->adr;
  121.                                 c++;
  122.                             }
  123.                         p=q->adr;
  124.                         q->adr=q->adr->adr;
  125.                         p->adr=NULL;
  126.                }
  127.         return 1;
  128.     }
  129. }
  130.  
  131. int main()
  132. {
  133.     nod* prim;
  134.     int k, inf, j;
  135.     prim=creare2();
  136.     parcurgere(prim);
  137.     cout<<" numarul de noduri este "<<n;
  138.     /*cout<<"\nPentru inserare, introduceti pozitia si valoarea: "; cin>>k>>inf;
  139.     if(!inserare(prim, k, inf))
  140.         cout<<"\npozitia introdusa nu se afla in lista";
  141.     else
  142.         parcurgere(prim);*/
  143.     cout<<"\nPentru stergere, introduceti pozitia: "; cin>>j;
  144.     if(stergere(prim, j)==0)
  145.          cout<<"\npozitia introdusa nu se afla in lista";
  146.     else
  147.         parcurgere(prim);
  148.     return 0;
  149. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement