queue - sum of elements
//write a c++ program to calculate the sum of the queue elements
#include<iostream>
#define MS 100
using namespace std;
typedef struct FIFOQ{
int arr[MS];
int front,rear;
}Q;
void init(Q *ptq)
{
ptq->front=ptq->rear=-1;
}
int isempty(Q *ptq)
{
if(ptq->front==-1)
return 1;
else
return 0;
}
int isfull(Q *ptq)
{
if((ptq->front==0&&ptq->rear==MS-1)||(ptq->front==ptq->rear+1))
return 1;
else
return 0;
}
void enqueue(Q *ptq,int data)
{
if(isfull(ptq))
return;
else
{
if(ptq->front==-1)
ptq->front=0;
if(ptq->rear==MS-1)
ptq->rear=0;
else
{
++ptq->rear;
ptq->arr[ptq->rear]=data;
}
}
}
int dequeue(Q* ptq)
{
int temp;
if(isempty(ptq))
return 9999;
else
{
temp=ptq->arr[ptq->front];
if(ptq->front==ptq->rear)
ptq->front=ptq->rear=-1;
else if(ptq->front==MS-1)
ptq->front=0;
else
++ptq->front;
return temp;
}
}
int sum(Q *ptq)
{
int i=0,arr[MS],sum=0,count=0;
while(isempty(ptq)!=1)
{
arr[i++]=dequeue(ptq);
count++;
}
for(i=0;i<count;i++)
{
sum=sum+arr[i];
enqueue(ptq,arr[i]);
}
return sum;
}
int main()
{
Q q;
init(&q);
int i,n,arr[100],res;
enqueue(&q,5);
enqueue(&q,10);
enqueue(&q,15);
dequeue(&q);
enqueue(&q,20);
res=sum(&q);
cout<<"Sum = "<<res;
}
Comments
Post a Comment