Advertisement
edutedu

interclasare liste

Oct 30th, 2019
148
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.49 KB | None | 0 0
  1. #include <iostream>
  2.  
  3. using namespace std;
  4. int n;
  5. struct nod
  6. {
  7. int info;
  8. nod* leg;
  9. };
  10.  
  11. nod*interclasare(nod*prim1,nod*prim2)
  12. {
  13. nod*p,*q,*r,*prim;
  14. if(prim1->info<prim2->info)
  15. {
  16. prim=prim1;
  17. p=prim1;
  18. q=prim2;
  19. }
  20. else
  21. {
  22. prim=prim2;
  23. p=prim2;
  24. q=prim1;
  25. }
  26. while(p->leg)
  27. if(p->leg->info<q->info)
  28. p=p->leg;
  29. else
  30. {
  31. r=p->leg;
  32. p->leg=q;
  33. p=r;
  34. swap(p,q);
  35. p->leg=q;
  36. }
  37. return prim;
  38. }
  39.  
  40. void parcurgere(nod* v)
  41. {
  42. nod* c=v;
  43. while(c)
  44. {
  45. cout<<c->info<<" ";
  46. n++;
  47. c=c->leg;
  48. }
  49. }
  50.  
  51. nod* creare2()
  52. {
  53. nod* prim, *ultim, *p;
  54. int nr;
  55. prim=new nod;
  56. ultim=prim;
  57. cout<<"Introduceti un numar: "; cin>>nr;
  58. if (nr==0)
  59. {
  60. cout<<"Lista este vida.";
  61. return 0;
  62. }
  63. else
  64. {
  65. prim->info=nr;
  66. prim->leg=NULL;
  67. cout<<"Introduceti un numar: "; cin>>nr;
  68. while(nr){
  69. p=new nod;
  70. p->info=nr;
  71. ultim->leg=p;
  72. ultim=p;
  73. ultim->leg=NULL;
  74. cout<<"Introduceti un numar: "; cin>>nr;
  75. };
  76. return prim;
  77. }
  78. }
  79. int main()
  80. {
  81. nod*prim1,*prim2,*prim;
  82. cout<<"Prima lista: ";
  83. prim1=creare2();
  84. cout<<"A doua lista: ";
  85. prim2=creare2();
  86. prim=interclasare(prim1,prim2);
  87. parcurgere(prim);
  88. return 0;
  89. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement