📄 cirqueue.c
字号:
/* TO PERFORM DIFFERENT OPERATIONS ON CIRCULAR QUEUE */
#include<stdio.h>
#include<conio.h>
#include<string.h>
#define MAX 3
typedef struct
{
int arr[MAX];
int front;
int rear;
}queue;
void init(queue *q1);
int full(queue *q1);
int empty(queue *q1);
void insert(queue *q1,int ele);
int delete(queue *q1);
void display(queue *q1);
void main()
{
int ch,ele;
char yn;
queue q;
init(&q);
do
{
clrscr();
printf("\n\t ***** OPERATIONS ON CIRCULAR QUEUE *****");
printf("\n\t 1.Insertion..");
printf("\n\t 2.Deletion..");
printf("\n\t 3. To exit..");
printf("\n\t Enter your choice..");
scanf("%d",&ch);
switch(ch)
{
case 1: printf("\n\t Enter the element to insert..");
scanf("%d",&ele);
insert(&q,ele);
display(&q);
break;
case 2: ele = delete(&q);
display(&q);
break;
case 3: exit(0);
default: printf("\n \t Sorry Wrong Choice!!!\n");
getch();
exit(0);
}
printf("\n\t Do you want to perform more operations(y/n):");
fflush(stdin);
scanf("%c",&yn);
}
while( yn =='Y' || yn == 'y');
}
void init(queue *q1)
{
q1->rear = -1;
q1->front = -1;
}
int full(queue *q1)
{
if((q1->rear == MAX-1 && q1->front == 0) || (q1->front == q1->rear+1))
return (1);
else
return (0);
}
int empty(queue *q1)
{
if(q1->front == -1 && q1->rear == -1)
return(1);
else
return(0);
}
void insert(queue *q1,int ele)
{
if(full(q1))
{
printf("\n\t The Queue Is Full , Overflow!");
return;
}
else if(q1->front == -1)
q1->rear = q1->front = 0;
else if(q1->rear == MAX-1)
q1->rear=0;
else
q1->rear++;
q1->arr[q1->rear]=ele;
}
int delete(queue *q1)
{
int ele;
if(empty(q1))
{
printf("\n \t The Queue Is Empty,Underflow!");
return NULL;
}
else
{
ele = q1->arr[(q1->front)];
if(q1->front == q1->rear)
q1->front=q1->rear=-1;
else if(q1->front == MAX-1)
q1->front = 0;
else
q1->front++;
}
printf("\n\tDELETED ELEMENT IS : %d\n\n",ele);
return (ele);
}
void display(queue *q1)
{
int i;
if(empty(q1))
return;
else
{
printf("\n \t The Contents of Queue From Front to Rear are:\n\t\t");
if(q1->front <= q1->rear)
for(i = q1->front ; i <= q1->rear ; i++)
printf(" %d ", q1->arr[i]);
else if(q1->front > q1->rear)
{
for(i = q1->front ; i <= MAX-1 ; i++)
printf(" %d ", q1->arr[i]);
for(i = 0 ; i <= q1->rear ; i++)
printf(" %d ", q1->arr[i]);
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -