Advertisement
Guest User

Untitled

a guest
Jan 23rd, 2020
81
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.37 KB | None | 0 0
  1. #include <iostream>
  2.  
  3. using namespace std;
  4.  
  5. typedef int adresa;
  6. struct nod
  7. {
  8. int info;
  9. adresa urm;
  10. };
  11.  
  12. nod L[100];
  13. int nrelem=0;
  14. adresa ocupat[1000],sf,v;
  15.  
  16. int es()
  17. {
  18. return nrelem<1000;
  19. }
  20.  
  21. void aloca(adresa & x)
  22. {
  23. adresa i=1;
  24. while(ocupat[i])i++;
  25. x=i;
  26. ocupat[i]=1;
  27. nrelem++;
  28. }
  29.  
  30. void elibereaza(adresa x)
  31. {
  32. ocupat[x]=0;
  33. nrelem--;
  34. }
  35.  
  36. void adaugare(adresa & v, int val)
  37. {
  38. int c;
  39. if(!v)
  40. {
  41. aloca(v);
  42. L[v].info=val;
  43. L[v].urm=0;
  44. sf=v;
  45. }
  46. else if(es)
  47. {
  48. aloca(c);
  49. L[sf].urm=c;
  50. L[c].info=val;
  51. L[c].urm=0;
  52. sf=c;
  53. }
  54. else cout<<"lipsa spatiu"<<endl;
  55. }
  56.  
  57. void id(adresa v, int val, int val1)
  58. {
  59. adresa c,d;
  60. if(es())
  61. if (L[v].info==val)
  62. {
  63. aloca(d);
  64. L[d].info=val1;
  65. L[d].urm=v;
  66. v=d;
  67. }
  68. else
  69. {
  70. c=v;
  71. while(L[L[c].urm].info!=val)c=L[c].urm;
  72. aloca(d);
  73. L[d].info=val1;
  74. L[d].urm=L[c].urm;
  75. L[c].urm=d;
  76. }
  77. else cout<<"nu e spatiu"<<endl;
  78. }
  79.  
  80. void ii(adresa & v,int val, int val1)
  81. {
  82. adresa c,d;
  83. if(es())
  84. if (L[v].info == val)
  85. {
  86. aloca (d);
  87. L[d].info=val1;
  88. L[d].urm=v;
  89. v=d;
  90. }
  91. else
  92. {
  93. c=v;
  94. while(L[L[c].urm].info!=val)c=L[c].urm;
  95. aloca (d);
  96. L[d].info=val1;
  97. L[d].urm=L[c].urm;
  98. L[c].urm=d;
  99. }
  100. else cout<<"nu e spatiu"<<endl;
  101. }
  102.  
  103. void s(adresa & v, int val)
  104. {
  105. adresa c,man;
  106. if(L[v].info==val)
  107. {
  108. man=v;
  109. v=L[v].urm;
  110. }
  111. else
  112. {
  113. c=v;
  114. while (L[L[c].urm].info!=val) c=L[c].urm;
  115. man=L[c].urm;
  116. L[c].urm=L[man].urm;
  117. if(man==sf)sf=c;
  118. }
  119. elibereaza (man);
  120. }
  121.  
  122. void af(adresa v)
  123. {
  124. adresa c=v;
  125. while(c)
  126. {
  127. cout<<L[c].info<<" ";
  128. c=L[c].urm;
  129. }
  130. cout<<endl;
  131. }
  132.  
  133. int cautare(int x)
  134. {
  135. int p;
  136. while(p&&L[p].info!=x)
  137. p=L[p].urm;
  138. return (p);
  139. }
  140.  
  141. int main()
  142. {
  143. int i;
  144. for(i=1;i<=10;i++)
  145. adaugare(v,i);
  146. af(v);
  147. id(v,1,15); af(v);
  148. id(v,10,25); af(v);
  149. ii(v,3,44);af(v);
  150. s(v,10);af(v);
  151. return 0;
  152. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement