Circular queues : Circular Queue « Data Structure « C Tutorial

Home
C Tutorial
1.Language
2.Data Type
3.String
4.printf scanf
5.Operator
6.Statement
7.Array
8.Function
9.Structure
10.Pointer
11.Memory
12.Preprocessor
13.File
14.Data Structure
15.Search Sort
16.Wide Character String
17.assert.h
18.ctype.h
19.math.h
20.setjmp.h
21.signal.h
22.stdio.h
23.stdlib.h
24.string.h
25.time.h
26.wctype.h
C Tutorial » Data Structure » Circular Queue 
14.4.1.Circular queues
#include <stdio.h>
#include <stdlib.h>

#define MAX 10


void insert(int queue[]int *rear, int front, int value)
{
   *rear= (*rear +1% MAX;
   if(*rear == front)
   {
      printf("The queue is full can not insert a value\n");
      exit(0);
   }
   queue[*rear= value;
}

void delete(int queue[]int *front, int rear, int * value)
{
   if(*front == rear)
   {
      printf("The queue is empty can not delete a value\n");
      exit(0);
   }
   *front = (*front + 1% MAX;
   *value = queue[*front];
}

void main()
{
   int queue[MAX];
   int front,rear;
   int n,value;
   front=0; rear=0;

   insert(queue,&rear,front,1);
   insert(queue,&rear,front,2);
   insert(queue,&rear,front,3);
   insert(queue,&rear,front,4);
  
   delete(queue,&front,rear,&value);
   printf("The value deleted is %d\n",value);

   delete(queue,&front,rear,&value);
   printf("The value deleted is %d\n",value);


   delete(queue,&front,rear,&value);
   printf("The value deleted is %d\n",value);
}
The value deleted is 1
The value deleted is 2
The value deleted is 3
14.4.Circular Queue
14.4.1.Circular queues
java2s.com  | Contact Us | Privacy Policy
Copyright 2009 - 12 Demo Source and Support. All rights reserved.
All other trademarks are property of their respective owners.