Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #ifndef _PR_H
- #define _PR_H
- #include <iostream>
- using namespace std;
- const int MaxPR = 10;
- struct Par {
- int m_nX, m_nY, m_nZ;
- };
- struct Cvor {
- Par m_Info;
- Cvor * m_Next;
- };
- struct PrioritetniRed {
- Cvor * Prvi;
- int nBrojac;
- void Inicijalizacija(){
- nBrojac = 0;
- Prvi = NULL;
- }
- bool IsPun(){
- return (nBrojac >= MaxPR);
- }
- bool IsPrazan(){
- return (nBrojac == 0);
- }
- float Udaljenost(Par sPar){
- float fSumaUdaljenost = sqrt(pow(sPar.m_nX, 2) + pow(sPar.m_nY, 2) + pow(sPar.m_nZ, 2));
- return fSumaUdaljenost;
- }
- float Ukloni(){
- if (IsPrazan())
- return -1;
- float fUdaljenost;
- Par XYZ;
- Cvor * cTemporary = Prvi;
- XYZ = Prvi->m_Info;
- fUdaljenost = Udaljenost(XYZ);
- Prvi = Prvi->m_Next;
- nBrojac--;
- delete cTemporary;
- return fUdaljenost;
- }
- Cvor *push_sort(Par XYZ, Cvor *Prvi){
- if (Prvi == NULL){
- Prvi = new Cvor;
- Prvi->m_Next = NULL;
- Prvi->m_Info = XYZ;
- return Prvi;
- }
- else
- {
- if (Udaljenost(XYZ) < (Udaljenost(Prvi->m_Info))){
- Cvor *NoviCvor = new Cvor;
- NoviCvor->m_Next = NULL;
- NoviCvor->m_Info = XYZ;
- NoviCvor->m_Next = Prvi;
- return NoviCvor;
- }
- else {
- Prvi->m_Next = push_sort(XYZ, Prvi->m_Next);
- return Prvi;
- }
- }
- }
- void Dodaj(Par XYZ){
- if (IsPun())
- return;
- nBrojac++;
- Prvi = push_sort(XYZ, Prvi);
- }
- };
- #endif
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement