-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathQProbADT.c
More file actions
74 lines (63 loc) · 1.81 KB
/
QProbADT.c
File metadata and controls
74 lines (63 loc) · 1.81 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
/*******************************************************************************
* Filename: QProbADT.c
******************************************************************************/
#include <stdio.h>
#include "QProbADT.h"
void CreateQ(QueueType *Queue)
/* Ëåéôïõñãßá: Äçìéïõñãåß ìéá êåíÞ ïõñÜ.
ÅðéóôñÝöåé: ÊåíÞ ïõñÜ
*/
{
Queue->Front = 0;
Queue->Rear = 0;
}
boolean EmptyQ(QueueType Queue)
/* ÄÝ÷åôáé: Ìéá ïõñÜ.
Ëåéôïõñãßá: ÅëÝã÷åé áí ç ïõñÜ åßíáé êåíÞ.
ÅðéóôñÝöåé: True áí ç ïõñÜ åßíáé êåíÞ, False äéáöïñåôéêÜ
*/
{
return (Queue.Front == Queue.Rear);
}
boolean FullQ(QueueType Queue)
/* ÄÝ÷åôáé: Ìéá ïõñÜ.
Ëåéôïõñãßá: ÅëÝã÷åé áí ç ïõñÜ åßíáé ãåìÜôç.
ÅðéóôñÝöåé: True áí ç ïõñÜ åßíáé ãåìÜôç, False äéáöïñåôéêÜ
*/
{
return ((Queue.Front) == ((Queue.Rear +1) % QueueLimit));
}
void RemoveQ(QueueType *Queue, QueueElementType *Item)
/* ÄÝ÷åôáé: Ìéá ïõñÜ.
Ëåéôïõñãßá: Áöáéñåß ôï óôïé÷åßï Item áðü ôçí åìðñüò Üêñç ôçò ïõñÜò
áí ç ïõñÜ äåí åßíáé êåíÞ.
ÅðéóôñÝöåé: Ôï óôïé÷åßï Item êáé ôçí ôñïðïðïéçìÝíç ïõñÜ.
¸îïäïò: ÌÞíõìá êåíÞò ïõñÜ áí ç ïõñÜ åßíáé êåíÞ
*/
{
if(!EmptyQ(*Queue))
{
*Item = Queue ->Element[Queue -> Front];
Queue ->Front = (Queue ->Front + 1) % QueueLimit;
}
else
printf("Empty Queue");
}
void AddQ(QueueType *Queue, QueueElementType Item)
/* ÄÝ÷åôáé: Ìéá ïõñÜ Queue êáé Ýíá óôïé÷åßï Item.
Ëåéôïõñãßá: ÐñïóèÝôåé ôï óôïé÷åßï Item óôçí ïõñÜ Queue
áí ç ïõñÜ äåí åßíáé ãåìÜôç.
ÅðéóôñÝöåé: Ôçí ôñïðïðïéçìÝíç ïõñÜ.
¸îïäïò: ÌÞíõìá ãåìÜôçò ïõñÜò áí ç ïõñÜ åßíáé ãåìÜôç
*/
{
int NewRear;
if(!FullQ(*Queue))
{
NewRear = (Queue ->Rear + 1) % QueueLimit;
Queue ->Element[Queue ->Rear] = Item;
Queue ->Rear = NewRear;
}
else
printf("Full Queue");
}