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

Popular Posts