-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathdoublendqueue.c
134 lines (130 loc) · 2.56 KB
/
doublendqueue.c
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
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
#include <stdio.h>
int isempty();
int isfull();
void display();
void insertf(int item);
int deletef();
void insertr(int item);
int deleter();
#define n 10
int q[n],front = -1,rear =-1;
int main()
{
int item,a,o;
do
{
printf("\n1)insertr\n2)deletef\n3)insertf\n4)deleter\n5)display\n6)end");
printf("\nenter the number to perform the operation");
scanf("%d",&o);
switch(o)
{
case 1 : printf("\nenter the element to be inserted into queue from rear");
scanf("%d",&a);
insertr(a);
break;
case 2 : if(!isempty())
printf("\nthe deleted element from front is %d",deletef());
else
printf("\nthe queuee is empty");
break;
case 3 : printf("\nenter the element to be inserted into queue from front");
scanf("%d",&a);
insertf(a);
break;
case 4 : if(!isempty())
printf("\nthe deleted element from rear is %d",deleter());
else
printf("\nthe queuee is empty");
break;
case 5 : display();
break;
}
}while(o!=6);
}
int isempty()
{
if(rear == -1)
return 1;
else
return 0;
}
int isfull()
{
if(front == (rear+1)%n)
return 1;
else
return 0;
}
void insertr(int item)
{
if(isfull())
printf("\nthe queuee is full");
else
{
if(front==-1)
front = rear = 0;
else
rear = (rear+1)%n;
q[rear]=item;
}
}
int deletef()
{
int a;
if(isempty())
printf("\nthe queuee is empty");
else
{
a=q[front];
if(front==rear)
{
front = rear =-1;
}
else
front= (front+1)%n;
return a;
}
}
void insertf(int item)
{
if(isfull())
printf("\nthe queuee is full");
else
{
if(front==-1)
front = rear = 0;
else
front = (front+n-1)%n;
q[front]=item;
}
}
int deleter()
{
int a;
if(isempty())
printf("\nthe queuee is empty");
else
{
a=q[rear];
if(front==rear)
{
front = rear =-1;
}
else
rear= (rear+n-1)%n;
return a;
}
}
void display()
{
if(isempty())
printf("\nthe queuee is empty");
else
{
for(int i=front;i!=rear;i=(i+1)%n)
{
printf("\n %d",q[i]);
}
printf("\n %d",q[rear]);
}
}