Advertisement
Dani_info

interclasare

Oct 30th, 2019
122
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.     nod *leg;
  8.     int info;
  9. };
  10.  
  11.  nod* creare()
  12. {
  13.     nod* prim, *ultim, *p;
  14.     int nr;
  15.     prim=new nod;
  16.     ultim=prim;
  17.     cout<<"Introduceti un numar: ";
  18.     cin>>nr;
  19.     if (nr==0)
  20.     {
  21.         cout<<"Lista este vida.";
  22.         return 0;
  23.     }
  24.     else
  25.     {
  26.         prim->info=nr;
  27.         prim->leg=NULL;
  28.         cout<<"Introduceti un numar: ";
  29.         cin>>nr;
  30.         while(nr)
  31.         {
  32.             p=new nod;
  33.             p->info=nr;
  34.             ultim->leg=p;
  35.             ultim=p;
  36.             ultim->leg=NULL;
  37.             cout<<"Introduceti un numar: ";
  38.             cin>>nr;
  39.         }
  40.         return prim;
  41.     }
  42. }
  43.  
  44. void parcurgere(nod* v)
  45. {
  46.     nod* c=v;
  47.     while(c)
  48.     {
  49.         cout << c->info<<" ";
  50.         v++;
  51.         c=c->leg;
  52.     }
  53. }
  54.  
  55. nod* interclasare (nod* prim1, nod* prim2)
  56. {
  57.     nod *p, *q, *r, *prim;
  58.     if(prim1->info < prim2->info)
  59.     {
  60.         prim = prim1;
  61.         p = prim1;
  62.         q = prim2;
  63.     }
  64.     else
  65.     {
  66.         prim = prim2;
  67.         p = prim2;
  68.         q = prim1;
  69.     }
  70.     while(p->leg)
  71.     {
  72.         if(p->leg->info < q->info)
  73.             p = p->leg;
  74.         else
  75.         {
  76.             r = p->leg;
  77.             p->leg = q;
  78.             p = r;
  79.             swap(p,q);
  80.         }
  81.     }
  82.     p->leg = q;
  83.     return prim;
  84. }
  85.  
  86. int main()
  87. {
  88.     nod *prim1 = creare(), *prim2 = creare();
  89.     parcurgere(prim1);
  90.     cout << endl;
  91.     parcurgere(prim2);
  92.     cout << endl;
  93.     prim1 = interclasare(prim1,prim2);
  94.     parcurgere(prim1);
  95.     return 0;
  96. }
Advertisement
RAW Paste Data Copied
Advertisement