forked from Anjalitripathi0024/Data-Structure
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy path4_Circular_queue_array.c
More file actions
114 lines (108 loc) · 2.64 KB
/
4_Circular_queue_array.c
File metadata and controls
114 lines (108 loc) · 2.64 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
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
#include<stdio.h>
int cqueue[5],front=-1,rear=-1;
void insert()
{ int data;
if(front==0&&rear==4||front==rear+1)
{ printf("\n --------------------------------------------");
printf("\n Overflow !!!"); }
else
{ printf("\n\n Enter Data : ");
scanf("%d",&data);
if(front==-1)
{ front=rear=0; }
else if(rear==4)
{ rear=0; }
else
{ rear=rear+1; }
cqueue[rear]=data;
printf("\n --------------------------------------------");
printf("\n Data inserted successfully.");
}
printf("\n --------------------------------------------");
}
void deletehead()
{ printf("\n --------------------------------------------");
if(front==-1)
{ printf("\n C-Queue is EMPTY !!!"); }
else
{ if(front==rear)
{ front=rear=-1; }
else if(front==4)
{ front=0; }
else
{ front++; }
printf("\n Deleted successfully.");
}
printf("\n --------------------------------------------");
}
void displayqueue()
{ int i,j=1;
printf("\n --------------------------------------------");
if(front==-1)
{ printf("\n C-Queue is EMPTY !!!"); }
else
{ if(front<=rear)
{ for(i=front;i<=rear;i++)
{ printf("\n Node %d : %d",j,cqueue[i]);
j++;
}
}
else
{ j=1;
for(i=front;i<=4;i++)
{ printf("\n Node %d : %d",j,cqueue[i]);
j++;
}
for(i=0;i<=rear;i++)
{ printf("\n Node %d : %d",j,cqueue[i]);
j++;
}
}
}
printf("\n --------------------------------------------");
}
int calcount()
{ int i,j=0;
if(front==-1)
{ j=0; }
else
{ if(front<=rear)
{ for(i=front;i<=rear;i++)
{ j++; }
}
else
{ for(i=front;i<=4;i++)
{ j++; }
for(i=0;i<=rear;i++)
{ j++; }
}
}
return j;
}
int main()
{ int c=0,d,count=0;
do
{ count=calcount();
printf("\n\n\t -: Array Circular Queue Menu :-");
printf("\n\n 1. Enter Data ----------");
printf("\n 2. Display Queue | Status |");
printf("\n 3. Delete Head | (%d/5) |",count);
printf("\n 4. Quit ----------");
printf("\n\n Enter choice number : ");
scanf("%d",&c);
switch(c)
{ case 1 : insert();
break;
case 2 : displayqueue();
break;
case 3 : deletehead();
break;
case 4 : break;
default : printf("\n --------------------------------------------");
printf("\n Invalid input !!!");
printf("\n --------------------------------------------");
}
}while(c!=4);
printf("\n\n Press any key to EXIT...");
return 0;
}