Advertisement
J00ker

Untitled

Apr 23rd, 2015
35
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.02 KB | None | 0 0
  1. #include <iostream>
  2. #define Nmax 1000
  3.  
  4. using namespace std;
  5.  
  6. struct Lista
  7. {
  8. int t[Nmax];
  9. int pr, ul;
  10.  
  11. /// Initializare lista vida
  12. void Init()
  13. {
  14. pr = 0; ul = -1;
  15. }
  16.  
  17. /// Test lista vida
  18. int Empty()
  19. {
  20. return pr > ul;
  21. }
  22.  
  23. /// Inserare element la sfarsit
  24. void InsertEnd(int x)
  25. {
  26. t[++ul] = x;
  27. }
  28.  
  29. /// Inserare la inceput sau in interior
  30. void Insert(int poz, int x)
  31. {
  32. for(int i = ul; i >= poz + pr - 1; i--)
  33. t[i+1] = t[i];
  34. t[poz + pr - 1] = x;
  35. ul++;
  36. }
  37.  
  38. /// Parcurgerea listei
  39. void Parcurgere()
  40. {
  41. if(Empty()) cout << "Lista este vida!";
  42. else
  43. {
  44. for(int i = pr; i <= ul; i++)
  45. cout << t[i] << " ";
  46. cout << "\n";
  47. }
  48. }
  49.  
  50. /// Stergere de la sfarsit
  51. void DeleteEnd()
  52. {
  53. if(!Empty()) ul--;
  54. }
  55.  
  56. /// Stergere de la inceput
  57. void DeleteBegin()
  58. {
  59. if(!Empty()) pr++;
  60. }
  61.  
  62. /// Sterge elementul de la pozitia poz
  63. void Delete(int poz)
  64. {
  65. if(Empty()) return;
  66. for(int i = poz + pr - 1; i < ul; i++)
  67. t[i] = t[i+1];
  68. ul--;
  69. }
  70.  
  71. /// Accesarea celui de-al k-lea element
  72. int GetElement(int k)
  73. {
  74. return t[pr + k - 1];
  75. }
  76.  
  77. /// Cauta o valoare x in lista
  78. int Search(int x)
  79. {
  80. int i;
  81. for(i = pr; i <= ul; i++)
  82. if(t[i] == x) return i - pr + 1;
  83. return -1;
  84. }
  85.  
  86. };
  87.  
  88. int main()
  89. {
  90. Lista L;
  91. L.Init();
  92.  
  93. for(int i = 1; i <= 30; i++)
  94. L.InsertEnd(i*i);
  95. L.Parcurgere();
  96.  
  97. L.Insert(3, 1000);
  98. L.Parcurgere();
  99.  
  100. L.Delete(3);
  101. L.Parcurgere();
  102.  
  103. L.DeleteBegin();
  104. L.DeleteBegin();
  105. L.DeleteBegin();
  106. L.DeleteBegin();
  107. L.Parcurgere();
  108.  
  109. L.DeleteEnd();
  110. L.Parcurgere();
  111.  
  112. cout << "\n" << L.GetElement(4) << "\n";
  113.  
  114. cout << L.Search(64) << "\n";
  115.  
  116. return 0;
  117. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement