Program to implement a circular queue as a linked list
#include #include #include /* structure containing a data part and link part */ struct node {  int data ;  struct node * link ; } ; void addcirq ( struct node **, struct node **, int ) ; int delcirq ( struct node **, struct node ** ) ; void cirq_display ( struct node * ) ; void main( ) {  struct node *front, *rear ;  front = rear = NULL ;  addcirq ( &front, &rear, 10 ) ;  addcirq ( &front, &rear, 17 ) ;  addcirq ( &front, &rear, 18 ) ;  addcirq ( &front, &rear, 5 ) ;  addcirq ( &front, &rear, 30 ) ;  addcirq ( &front, &rear, 15 ) ;  clrscr( ) ;  printf ( "Before deletion:\n" ) ;  cirq_display ( front ) ;  delcirq ( &front, &rear ) ;  delcirq ( &front, &rear ) ;  delcirq ( &front, &rear ) ;  printf ( "\n\nAfter deletion:\n" ) ;  cirq_display ( front ) ; } /* adds a new element at the end of queue */ void addcirq ( struct node **f, struct node **r, int item ) {  struct node *q ;  /* create new nod...