SHARE
TWEET

Untitled

a guest Oct 16th, 2019 72 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. #include <iostream>
  2.  
  3. using namespace std;
  4.  
  5. struct nod
  6. {
  7.     int info;
  8.     nod* leg;
  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->leg;
  21.     }
  22. }
  23.  
  24. nod* creare()
  25. {
  26.     nod* prim, *ultim, *p;
  27.     int nr;
  28.     prim=new nod;
  29.     ultim=prim;
  30.     cout<<"Introduceti un numar: ";
  31.     cin>>nr;
  32.     if (nr==0)
  33.     {
  34.         cout<<"Lista este vida.";
  35.         return 0;
  36.     }
  37.     else
  38.     {
  39.         prim->info=nr;
  40.         prim->leg=NULL;
  41.         cout<<"Introduceti un numar: ";
  42.         cin>>nr;
  43.         while(nr)
  44.         {
  45.             p=new nod;
  46.             p->info=nr;
  47.             ultim->leg=p;
  48.             ultim=p;
  49.             ultim->leg=NULL;
  50.             cout<<"Introduceti un numar: ";
  51.             cin>>nr;
  52.         };
  53.         return prim;
  54.     }
  55. }
  56.  
  57. int inserare (nod *prim, int k, int inf)
  58. {
  59.     if (k > n + 1)
  60.         return 0;
  61.     else
  62.     {
  63.         nod * p = new nod, *q;
  64.         p -> info = inf;
  65.         if( k == 1)
  66.         {
  67.             p -> leg = prim;
  68.             prim = p;
  69.         }
  70.         else if (k == n + 1)
  71.         {
  72.             q = prim;
  73.             while ( q -> leg)
  74.                 q = q -> leg;
  75.             q -> leg = p;
  76.             p -> leg = NULL;
  77.         }
  78.         else
  79.         {
  80.             q = prim;
  81.             int ct = 1;
  82.             while ( ct < k - 1)
  83.             {
  84.                 q = q -> leg;
  85.                 ct++;
  86.             }
  87.             p -> leg = q -> leg;
  88.             q -> leg = p;
  89.         }
  90.         return 1;
  91.     }
  92. }
  93.  
  94. int stergere(nod* &prim, int k)
  95. {
  96.     nod *q, *p;
  97.     if(k > n)
  98.         return 0;
  99.     else
  100.     {
  101.         if(k == 1)
  102.         {
  103.             q = prim;
  104.             prim = prim -> leg;
  105.             delete q;
  106.         }
  107.         else if( k == n)
  108.         {
  109.             q = prim;
  110.             while(q -> leg -> leg)
  111.                 q = q -> leg;
  112.             p = q;
  113.             p -> leg = NULL;
  114.             delete q -> leg;
  115.         }
  116.         else
  117.         {
  118.             q = prim;
  119.             int ct = 1;
  120.             while(ct < k - 1)
  121.             {
  122.                 q = q -> leg;
  123.                 ct++;
  124.             }
  125.             p = q -> leg;
  126.             q -> leg = q -> leg -> leg;
  127.             delete p;
  128.         }
  129.     }
  130.     return 1;
  131. }
  132.  
  133. int main()
  134. {
  135.     nod* prim;
  136.     int k, inf;
  137.     prim=creare();
  138.     parcurgere(prim);
  139.     cout<<" numarul de noduri este "<< n << endl;
  140.     cout << "Introduceti pozitia si valoarea pentru inserare: ";
  141.     cin >> k >> inf;
  142.     if (inserare(prim, k, inf))
  143.         parcurgere(prim);
  144.     else
  145.         cout << "Inserarea nu se afla in lista.";
  146.     cout << "\nDe pe ce pozitie stergeti? ";
  147.     cin >> k;
  148.     stergere(prim, k);
  149.     parcurgere(prim);
  150.     if(stergere(prim, k) == 0)
  151.         cout << "Pozitia introdusa nu se afla in lista"<< endl;
  152.     else
  153.         parcurgere(prim);
  154.     return 0;
  155. }
RAW Paste Data
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy. OK, I Understand
 
Top