Advertisement
elica123

Untitled

May 3rd, 2019
119
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.79 KB | None | 0 0
  1. #include<iostream>
  2. #include<stdio.h>
  3.  
  4. using namespace std;
  5.  
  6. template <class Type>
  7. struct multiskup{
  8.  
  9. int kapacitet;
  10. int broj_elemenata;
  11. char op;
  12. Type *polje;
  13.  
  14. multiskup(){
  15. op='!';
  16. kapacitet=1;
  17. broj_elemenata=0;
  18. }
  19.  
  20. multiskup(char oper){
  21. op=oper;
  22. kapacitet=1;
  23. broj_elemenata=0;
  24. }
  25.  
  26. multiskup(int kap, char oper){
  27. op=oper;
  28. kapacitet=kap;
  29. broj_elemenata=0;
  30. }
  31.  
  32. Type min(){
  33. int i,j;
  34. int br=0;
  35. Type min=polje[0]; //ovo je prvi*
  36.  
  37. if(op=='>'){
  38. for(i=0; i<broj_elemenata; i++){
  39. min=polje[i];
  40. br=0;
  41. for(j=0; j<broj_elemenata; j++){
  42. if( !(min > polje[j]) && i!=j)
  43. br++;
  44. }
  45. if(br==broj_elemenata-1)return min;
  46. }
  47. }
  48.  
  49. if(op=='<'){
  50. for(i=0; i<broj_elemenata; i++){
  51. min=polje[i];
  52. br=0;
  53. for(j=0; j<broj_elemenata; j++){
  54. if( !(min < polje[j]) && i!=j)
  55. br++;
  56. }
  57. if(br==broj_elemenata-1)return min;
  58. }
  59. }
  60.  
  61. if(op=='!'){
  62. for(i=0; i<broj_elemenata; i++){
  63. min=polje[i];
  64. br=0;
  65. for(j=0; j<broj_elemenata; j++){
  66. if(!(min!=polje[j]) && i!=j)
  67. br++;
  68.  
  69. }
  70. if(br==broj_elemenata-1)return min;
  71. }
  72. }
  73.  
  74. return min; //vracam prvog ak takav ne postoji
  75. }
  76.  
  77. int dodaj(Type element){
  78. int i;
  79. int br=0;
  80. if(op=='<')
  81. for(i=0; i<broj_elemenata; i++)
  82. if(element < polje[i])br++;
  83.  
  84. if(op=='>')
  85. for(i=0; i<broj_elemenata; i++)
  86. if(element > polje[i])br++;
  87.  
  88. if(op=='!')
  89. for(i=0; i<broj_elemenata; i++)
  90. if(element != polje[i])br++;
  91.  
  92. if(br == broj_elemenata && broj_elemenata < kapacitet ){ //ispunjen je uvjet a
  93. polje[broj_elemenata]=element; //ova linija NIEJ DOBRA
  94. broj_elemenata++;
  95. for(i=0;i<broj_elemenata;i++)
  96. std::cout<<polje[i]<<" ";
  97. std::cout<<std::endl;
  98. return 1;
  99. }
  100.  
  101. if(br==broj_elemenata && broj_elemenata==kapacitet){
  102. Type min_=min();
  103. for(i=0; i<broj_elemenata; i++)
  104. if(polje[i]==min_){
  105. polje[i]=element; //dali ce ovo uistinu promjeniti polje ili samo kopiju?
  106. return 1;
  107. }
  108. }
  109.  
  110. return 0;
  111. }
  112.  
  113. };
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement