Advertisement
barbos01

Untitled

Mar 27th, 2022
98
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.43 KB | None | 0 0
  1. #include <iostream>
  2. using namespace std;
  3. /*
  4. functie care face adaugarea unui element;
  5. functie care face listarea elementelor listei;
  6. functe care face extragerea unui element cu o informatie utila data.
  7. */
  8.  
  9. struct nod
  10. {
  11. int informatie;
  12. nod *urmator,*inapoi;
  13. };
  14.  
  15. //initializare
  16. void init(nod* &cap, nod* &coada)
  17. {
  18. cap = coada = NULL;
  19. }
  20.  
  21. //afisam lista de la cap la coada
  22. void afisareLista(nod *cap,nod *coada)
  23. {
  24. if(cap == NULL)
  25. {
  26. cout<<"Lista nu are elemente!!!\n\n";
  27. }
  28. else
  29. {
  30. cout<<"Lista circulara dublu inlantuita este: ";
  31. while(cap != NULL)
  32. {
  33. cout<<cap->informatie<<", ";
  34. if(cap == coada)
  35. cap = NULL;
  36. else
  37. cap = cap->urmator;
  38. }
  39. cout<<"\n\n";
  40. }
  41. }
  42.  
  43. //extragerea ultimului element adaugat in lista
  44. void extragereUltim(nod* &cap, nod* &coada)
  45. {
  46. if(cap == NULL)
  47. {
  48. cout<<"Lista nu are elemente!!!\n\n";
  49. }
  50. else if(cap == coada)
  51. {
  52. cout<<"Informatia extrasa este: "<<cap->informatie<<"\n\n";
  53. nod* del = cap;
  54. cap = cap->urmator;
  55. cap->inapoi = coada;
  56. delete del;
  57. cap=coada=NULL;
  58. }
  59. else
  60. {
  61. cout<<"Informatia extrasa este: "<<cap->informatie<<"\n\n";
  62. nod* del = cap;
  63. cap = cap->urmator;
  64. cap->inapoi = coada;
  65. delete del;
  66. }
  67.  
  68.  
  69. }
  70.  
  71.  
  72. //adaugam un element in fata capului listei
  73. void inserareLista(nod* &cap,nod* &coada,int informatie)
  74. {
  75. nod *New = new nod;
  76. New->informatie = informatie;
  77.  
  78. if(cap == NULL) //daca lista este goala capul si coada sunt aceleasi
  79. {
  80. cap = coada = New;
  81. New->urmator = coada;
  82. New->inapoi = cap;
  83. }
  84. else if(cap == coada) //daca avem un singur element
  85. {
  86. New->urmator = coada;
  87. New->inapoi = coada;
  88. cap = New;
  89. coada->urmator = New;
  90. coada->inapoi = New;
  91. }
  92. else
  93. //in caz contrar noul element devine capul listei
  94. {
  95. New->urmator = cap;
  96. cap->inapoi = New;
  97. New->inapoi = coada;
  98. coada->urmator = New;
  99. cap = New;
  100. }
  101. }
  102.  
  103.  
  104.  
  105.  
  106.  
  107. int main()
  108. {
  109. nod *cap;
  110. nod *coada;
  111. init(cap, coada);
  112. inserareLista(cap, coada, 2);
  113. inserareLista(cap, coada, 4);
  114. afisareLista(cap, coada);
  115. extragereUltim(cap, coada);
  116. return 0;
  117. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement