Theoretical Paper
- Computer Organization
 - Data Structure
 - Digital Electronics
 - Object Oriented Programming
 - Discrete Mathematics
 - Graph Theory
 - Operating Systems
 - Software Engineering
 - Computer Graphics
 - Database Management System
 - Operation Research
 - Computer Networking
 - Image Processing
 - Internet Technologies
 - Micro Processor
 - E-Commerce & ERP
 
Practical Paper
Industrial Training
Program that implements circular queue as an array
/* Program that implements circular queue as an array. */
#include <stdio.h>
                      #include <conio.h>
#define MAX 10
void addq ( int *, int, int *, int * ) ;
                      int delq ( int *, int *, int * ) ;
                      void display ( int * ) ;
void main( )
                      {
                      int arr[MAX] ;
                      int i, front, rear ;
clrscr( ) ;
 /* initialise data member */
                      front = rear = -1 ;
                      for ( i = 0 ; i < MAX ; i++ )
                      arr[i] = 0 ;
 addq ( arr, 14, &front, &rear ) ;
                      addq ( arr, 22, &front, &rear ) ;
                      addq ( arr, 13, &front, &rear ) ;
                      addq ( arr, -6, &front, &rear ) ;
                      addq ( arr, 25, &front, &rear ) ;
 printf ( "\nElements in the circular queue: " ) ;
                      display ( arr ) ;
 i = delq ( arr, &front, &rear ) ;
                      printf ( "Item deleted: %d", i ) ;
 i = delq ( arr, &front, &rear ) ;
                      printf ( "\nItem deleted: %d", i ) ;
 printf ( "\nElements in the circular queue after deletion: " ) ;
                      display ( arr ) ;
 addq ( arr, 21, &front, &rear ) ;
                      addq ( arr, 17, &front, &rear ) ;
                      addq ( arr, 18, &front, &rear ) ;
                      addq ( arr, 9, &front, &rear ) ;
                      addq ( arr, 20, &front, &rear ) ;
 printf ( "Elements in the circular queue after addition: " ) ;
                      display ( arr ) ;
addq ( arr, 32, &front, &rear ) ;
 printf ( "Elements in the circular queue after addition: " ) ;
                      display ( arr ) ;
 getch( ) ;
                      }
/* adds an element to the queue */
                      void addq ( int *arr, int item, int *pfront, int *prear )
                      {
                      if ( ( *prear == MAX - 1 && *pfront == 0 ) || (  *prear + 1 == *pfront ) )
                      {
                      printf ( "\nQueue is full." ) ;
                      return ;
                      }
 if ( *prear == MAX - 1 )
                      *prear = 0 ;
                      else
                      ( *prear )++ ;
arr[*prear] = item ;
 if ( *pfront == -1 )
                      *pfront = 0 ;
                      }
/* removes an element from the queue */
                      int delq ( int *arr, int *pfront, int *prear )
                      {
                      int data ;
 if ( *pfront == -1 )
                      {
                      printf ( "\nQueue is empty." ) ;
                      return NULL ;
                      }
 data = arr[*pfront] ;
                      arr[*pfront] = 0 ;
 if ( *pfront == *prear )
                      {
                      *pfront = -1 ;
                      *prear = -1 ;
                      }
                      else
                      {
                      if ( *pfront == MAX - 1 )
                      *pfront = 0 ;
                      else
                      ( *pfront )++ ;
                      }
                      return data ;
                      }
/* displays element in a queue */
                      void display ( int * arr )
                      {
                      int i ;
                      printf ( "\n" ) ;
                      for ( i = 0 ; i < MAX ; i++ )
                      printf ( "%d\t", arr[i] ) ;
                      printf ( "\n" ) ;
                      }
