/* Queue using Array */
#include<stdio.h>
#define MAXSIZE 4
int cq[MAXSIZE];
int front=-1, rear=-1;
void insert(int item)
{
printf("Insert called:\n");
if( ( (front==0)&&(rear==MAXSIZE-1)%MAXSIZE ) ||
front==(rear+1)%MAXSIZE )
{
printf("Queue is full.\n");
}
else
{
if(front==-1)
front=rear=0;
else
rear=(rear+1)%MAXSIZE;
cq[rear]=item;
printf("\nfront =%d rear=%d\n",front,rear);
}
}
void display()
{
printf("\n");
int i;
for(i=0;i<MAXSIZE;i++)
{
printf("%d ",cq[i]);
//printf("%d %d ",front,rear);
}
printf("\n");
}
void deletee()
{
if(front==-1)
{
printf("Queue is empty\n");
}
else
{
int temp;
temp=cq[front];
cq[front]=0;
if(front==rear)//only 1 elt was there
front=rear=-1;//delete the single so q is empty
else
front=(front+1)%MAXSIZE;//if more than 1 elt then delete
frm front
printf("deleted elt is: %d\n",temp);
printf("\n front = %d rear = %d\n",front,rear);
}
}
int main()
{
insert(10);
insert(20);
insert(30);
insert(40);
display();
insert(111);//Q is full so make same place by deleting fronts
display();
deletee();
display();
insert(100);
display();
return 0;
}
/*
Insert called:
front =0 rear=0
Insert called:
front =0 rear=1
Insert called:
front =0 rear=2
Insert called:
front =0 rear=3
10 20 30 40
Insert called:
Queue is full.
10 20 30 40
deleted elt is: 10
front = 1 rear = 3
0 20 30 40
Insert called:
front =1 rear=0
100 20 30 40
*/
#include<stdio.h>
#define MAXSIZE 4
int cq[MAXSIZE];
int front=-1, rear=-1;
void insert(int item)
{
printf("Insert called:\n");
if( ( (front==0)&&(rear==MAXSIZE-1)%MAXSIZE ) ||
front==(rear+1)%MAXSIZE )
{
printf("Queue is full.\n");
}
else
{
if(front==-1)
front=rear=0;
else
rear=(rear+1)%MAXSIZE;
cq[rear]=item;
printf("\nfront =%d rear=%d\n",front,rear);
}
}
void display()
{
printf("\n");
int i;
for(i=0;i<MAXSIZE;i++)
{
printf("%d ",cq[i]);
//printf("%d %d ",front,rear);
}
printf("\n");
}
void deletee()
{
if(front==-1)
{
printf("Queue is empty\n");
}
else
{
int temp;
temp=cq[front];
cq[front]=0;
if(front==rear)//only 1 elt was there
front=rear=-1;//delete the single so q is empty
else
front=(front+1)%MAXSIZE;//if more than 1 elt then delete
frm front
printf("deleted elt is: %d\n",temp);
printf("\n front = %d rear = %d\n",front,rear);
}
}
int main()
{
insert(10);
insert(20);
insert(30);
insert(40);
display();
insert(111);//Q is full so make same place by deleting fronts
display();
deletee();
display();
insert(100);
display();
return 0;
}
/*
Insert called:
front =0 rear=0
Insert called:
front =0 rear=1
Insert called:
front =0 rear=2
Insert called:
front =0 rear=3
10 20 30 40
Insert called:
Queue is full.
10 20 30 40
deleted elt is: 10
front = 1 rear = 3
0 20 30 40
Insert called:
front =1 rear=0
100 20 30 40
*/
No comments:
Post a Comment