wiuu23

Kruznica_PrPov

Sep 24th, 2021
905
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. #include <iostream>
  2. using namespace std;
  3.  
  4. class Kruznica2D {
  5. public:
  6.     float x, y, r;
  7.     Kruznica2D() {}
  8.     Kruznica2D(float x, float y, float r)
  9.     {
  10.         this->x = x;
  11.         this->y = y;
  12.         this->r = r;
  13.     }
  14. };
  15.  
  16. typedef Kruznica2D Tip;
  17.  
  18. class Cvor {
  19. public:
  20.     Cvor* next;
  21.     Tip info;
  22.     Cvor(Tip info, Cvor* next = nullptr) {
  23.         this->info = info;
  24.         this->next = next;
  25.     }
  26. };
  27.  
  28. class PrioRedPov {
  29.     Cvor* prvi;
  30.  
  31.     /*ovaj dio se razlikuje od zadatka do zadatka, ostatak kod-a kod nas na fakultetu za ispit je uvijek isti default-ni*/
  32.     float najvecaPovrsina(Tip x) {
  33.         float pi = 3.14;
  34.         return pow(x.r, 2) * pi;
  35.     }
  36.  
  37. public:
  38.     PrioRedPov() {
  39.         prvi = nullptr;
  40.     }
  41.  
  42.     void dodaj(Tip x) {
  43.         Cvor* temp = prvi;
  44.         Cvor* privremeni = nullptr;
  45.  
  46.         while (temp != nullptr)
  47.         {
  48.             if (najvecaPovrsina(temp->info) > najvecaPovrsina(x))
  49.                 break;
  50.  
  51.             privremeni = temp;
  52.             temp = temp->next;
  53.         }
  54.  
  55.         Cvor* novi = new Cvor(x);
  56.  
  57.         if (privremeni == nullptr)
  58.             prvi = novi;
  59.         else
  60.             privremeni->next = novi;
  61.         novi->next = temp;
  62.     }
  63.  
  64.     Tip ukolni()
  65.     {
  66.         if (jeLiPrazan())
  67.         {
  68.             return Tip();
  69.         }
  70.  
  71.         Cvor* temp = prvi;
  72.         prvi = prvi->next;
  73.  
  74.         Tip x = temp->info;
  75.  
  76.         delete temp;
  77.         return x;
  78.     }
  79.     bool jeLiPrazan() {
  80.         return prvi == nullptr;
  81.     }
  82.  
  83.     void ispis() {
  84.         Cvor* temp = prvi;
  85.         while (temp != nullptr)
  86.         {
  87.             cout << temp->info.x << " " << temp->info.y << " " << temp->info.r << endl;
  88.             temp = temp->next;
  89.         }
  90.     }
  91. };
  92.  
  93.  
  94. int main() {
  95.     Kruznica2D k1(1, 23, 3),
  96.         k2(9, 5, 6),
  97.         k3(6, 5, 4),
  98.         k4(9, 2, 0),
  99.         k5(7, 4, 3);
  100.  
  101.     PrioRedPov A;
  102.  
  103.     A.dodaj(k1);
  104.     A.dodaj(k2);
  105.     A.dodaj(k3);
  106.     A.dodaj(k4);
  107.     A.dodaj(k5);
  108.  
  109.     Kruznica2D uklonjena = A.ukolni();
  110.     cout << "Uklonjeno: " << uklonjena.x << " " << uklonjena.y << " " << uklonjena.r << endl;
  111.  
  112.     cout << "Dodano: " << endl;
  113.     A.ispis();
  114.  
  115.  
  116.     system("PAUSE");
  117. }
RAW Paste Data