Revision: 53899
Initial Code
Initial URL
Initial Description
Initial Title
Initial Tags
Initial Language
at December 3, 2011 05:44 by maretic_kristian
Initial Code
// Implementacija programa pomoću pokazivaÄa - Kristian Maretić
#include <iostream>
using namespace std;
typedef struct el_red red;
typedef struct red_ordinacija el_reda_ordinacije;
struct pacijent // struktura podataka koji se zapisuju u red
{
int x, y; // random upisani brojevi
int rb_pacijenta; // redni broj pacijenta
int prioritet; // prioritet pacijenta
};
struct red_ordinacija // struktura reda
{
pacijent p; // vrijednost elementa u redu (svakog pacijenta)
red_ordinacija *next; // definicija pokazivaÄa na slijedeći element u redu
};
struct el_red // struktura elemenata reda
{
red_ordinacija *front, *rear;
};
bool IsEmptyQ(red *_r) // provjera je li red prazan
{
bool retVal;
if (_r -> rear == _r -> front) // red je prazan ako je pokazivaÄ na poÄetak i kraj reda jednak
{
retVal = true;
}
else
{
retVal = false;
}
return retVal;
}
void InitQ (red *_r) // inicijalizacija praznog reda
{
el_reda_ordinacije *head = new el_reda_ordinacije; // inicijalizacija novog elementa reda
_r -> front = head; // postavlja se pokazivaÄ fronta na novi element
_r -> rear = head; // postavlja se pokazivaÄ frara na novi element to znaÄi da je red inicijaliziran ali i prazan
}
pacijent FrontQ(red *_r) // vraćanje vrijednosti elementa koji se nalazi na Äelu reda
{
if (!IsEmptyQ(_r)) // provjera da li je red prazan
{ // ako red nije prazan
el_reda_ordinacije *_temp = _r -> front; // element na Äelu se sprema u privremenu _temp varijablu
_temp = _temp -> next; // postavlja se na Äelo element koji je slijedeći u redu
return _temp -> p; // postavlja se vrijednost pacijentu
}
}
void DeQueueQ(red *_r) // brisanje elementa s Äela reda
{
if (!IsEmptyQ(_r)) // provjera dali je red prazan
{
el_reda_ordinacije *_del = _r -> front; //element sa Äela reda sprema se u privremenu _del varijablu
_r -> front = _del -> next; // postavlja se novi element Äela koji je slijedeći u redu
delete _del; // briÅ¡e se element s Äela
}
}
void EnQueueQ (pacijent x, red *_r) // dodavanje novog elementa na zaÄelje reda
{
el_reda_ordinacije *_last = _r -> rear; // element s zaÄelja reda sprema se u privremenu _last varijablu
el_reda_ordinacije *_new = new el_reda_ordinacije; // inicijalizira se novi element reda koji će se postavit na zaÄelje
_new -> p = x; // u novi element sprema se proslijeđena vrijednost pacijenta
_new -> next = NULL; // postavlja se pokazivaÄ novog elementa na NULL pokazivaÄ
_last -> next = _new; // postavlja se pokazivaÄ prethodnog zadnjeg na novi element koji je na zaÄelju
_r -> rear = _new; // novo ubaÄeni element postavlja se na zaÄelje reda
}
Initial URL
/
Initial Description
Implementacija reda pomocu pokazivaca
Initial Title
red_pokazivac.h
Initial Tags
Initial Language
C++