Advertisement
Guest User

ASP

a guest
Sep 23rd, 2014
186
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.39 KB | None | 0 0
  1. #ifndef _PR_H
  2. #define _PR_H
  3.  
  4. #include <iostream>
  5. using namespace std;
  6.  
  7. const int MaxPR = 10;
  8.  
  9. struct Par {
  10.     int m_nX, m_nY, m_nZ;
  11. };
  12.  
  13. struct Cvor {
  14.     Par m_Info;
  15.     Cvor * m_Next;
  16. };
  17.  
  18. struct PrioritetniRed {
  19.     Cvor * Prvi;
  20.     int nBrojac;
  21.  
  22.     void Inicijalizacija(){
  23.         nBrojac = 0;
  24.         Prvi = NULL;
  25.     }
  26.  
  27.     bool IsPun(){
  28.         return (nBrojac >= MaxPR);
  29.     }
  30.  
  31.     bool IsPrazan(){
  32.         return (nBrojac == 0);
  33.     }
  34.  
  35.     float Udaljenost(Par sPar){
  36.         float fSumaUdaljenost = sqrt(pow(sPar.m_nX, 2) + pow(sPar.m_nY, 2) + pow(sPar.m_nZ, 2));
  37.         return fSumaUdaljenost;
  38.     }
  39.  
  40.     float Ukloni(){
  41.  
  42.         if (IsPrazan())
  43.             return -1;
  44.         float fUdaljenost;
  45.         Par XYZ;
  46.         Cvor * cTemporary = Prvi;
  47.         XYZ = Prvi->m_Info;
  48.         fUdaljenost = Udaljenost(XYZ);
  49.         Prvi = Prvi->m_Next;
  50.         nBrojac--;
  51.  
  52.         delete cTemporary;
  53.  
  54.         return fUdaljenost;
  55.     }
  56.  
  57.     Cvor *push_sort(Par XYZ, Cvor *Prvi){
  58.         if (Prvi == NULL){
  59.             Prvi = new Cvor;
  60.             Prvi->m_Next = NULL;
  61.             Prvi->m_Info = XYZ;
  62.             return Prvi;
  63.         }
  64.         else
  65.         {
  66.             if (Udaljenost(XYZ) < (Udaljenost(Prvi->m_Info))){
  67.                 Cvor *NoviCvor = new Cvor;
  68.                 NoviCvor->m_Next = NULL;
  69.                 NoviCvor->m_Info = XYZ;
  70.                 NoviCvor->m_Next = Prvi;
  71.  
  72.                 return NoviCvor;
  73.             }
  74.             else {
  75.  
  76.                 Prvi->m_Next = push_sort(XYZ, Prvi->m_Next);
  77.                 return Prvi;
  78.             }
  79.         }
  80.     }
  81.  
  82.     void Dodaj(Par XYZ){
  83.         if (IsPun())
  84.             return;
  85.         nBrojac++;
  86.         Prvi = push_sort(XYZ, Prvi);
  87.  
  88.     }
  89. };
  90. #endif
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement