Advertisement
J00ker

Untitled

Apr 27th, 2015
222
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.11 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. void Init()
  12. {
  13. pr = 0; ul = -1;
  14. }
  15.  
  16. int Empty()
  17. {
  18. return pr > ul;
  19. }
  20.  
  21. void InsertEnd(int x)
  22. {
  23. t[++ul] = x;
  24. }
  25.  
  26. void Insert(int poz, int x)
  27. {
  28. for(int i = ul; i >= poz + pr - 1; i--)
  29. t[i+1] = t[i];
  30. t[poz + pr - 1] = x;
  31. ul++;
  32. }
  33.  
  34. void Parcurgere()
  35. {
  36. if(Empty()) cout << "Lista este vida!";
  37. else
  38. {
  39. for(int i = pr; i <= ul; i++)
  40. cout << t[i] << " ";
  41. cout << "\n";
  42. }
  43. }
  44.  
  45. void DeleteEnd()
  46. {
  47. if(!Empty()) ul--;
  48. }
  49.  
  50. void DeleteBegin()
  51. {
  52. if(!Empty()) pr++;
  53. }
  54.  
  55. void Delete(int poz)
  56. {
  57. if(Empty()) return;
  58. for(int i = poz + pr - 1; i < ul; i++)
  59. t[i] = t[i+1];
  60. ul--;
  61. }
  62.  
  63. int GetElement(int k)
  64. {
  65. return t[pr + k - 1];
  66. }
  67.  
  68. int Search(int x)
  69. {
  70. int i;
  71. for(i = pr; i <= ul; i++)
  72. if(t[i] == x) return i - pr + 1;
  73. return -1;
  74. }
  75.  
  76. int Size()
  77. {
  78. return ul - pr + 1;
  79. }
  80.  
  81. };
  82.  
  83. int main()
  84. {
  85. int a[7] = {1, 3, 5, 6, 8, 9, 11}, n = 7;
  86. int b[10] = {2, 3, 5, 6, 8, 10, 12, 15, 16, 22}, m = 10;
  87. int i, j;
  88.  
  89. Lista L1, L2, L;
  90. L1.Init();
  91. L2.Init();
  92. L.Init();
  93.  
  94. for(i = 0; i < n; i++)
  95. L1.InsertEnd(a[i]);
  96. for(i = 0; i < m; i++)
  97. L2.InsertEnd(b[i]);
  98.  
  99. i = j = 1;
  100. int el1, el2;
  101. while((i <= n) && (j <= m))
  102. {
  103. el1 = L1.GetElement(i);
  104. el2 = L2.GetElement(j);
  105. if(el1 <= el2)
  106. {
  107. L.InsertEnd(el1);
  108. i++;
  109. }
  110. else
  111. {
  112. L.InsertEnd(el2);
  113. j++;
  114. }
  115. }
  116. while(i <= n)
  117. L.InsertEnd(L1.GetElement(i++));
  118. while(j <= m)
  119. L.InsertEnd(L2.GetElement(j++));
  120.  
  121. L1.Parcurgere();
  122. L2.Parcurgere();
  123. L.Parcurgere();
  124.  
  125. return 0;
  126. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement