Skip to main content

CIRCULAR QUEUE

/**
    Program Name: Circular Queue

    Description: Circular Queue using Array

    Author:  Tauqirul Haque
       
*/


int front = -1;  //This is the Initial Condition
int rear = -1;

#define SIZE 5

int queue[SIZE];

void deleteElement();
void insertElement();
void displayElement();

void main()
{
    int ch;
    while(ch !=4)
    {
        printf("\n\t\t1. Insert into queue..\n");
        printf("\t\t2. Delete From Queue...\n");
        printf("\t\t3. Diplay Queue...\n");
        printf("\t\t4. Exit Program ...\n");
       
        printf("Enter Your Choice #  ");
        scanf("%d",&ch);
       
        switch(ch)
        {
            case 1:
                    insertElement();
                    break;
            case 2:
                    deleteElement();
                    break;
            case 3:
                    displayElement();
                    break;
            case 4:
                    exit(0);
        }
    }
}

void insertElement()
{
    int item;
   
    printf("Enter The Item You want to Insert :  ");
    scanf("%d",&item);
   
    if((front ==0 && rear == SIZE -1) || (front == rear + 1))
    {
        printf("\nQUEUE Overflow .. \n\n");
        return;
    }
   
    if(front == -1)
    {
        front = rear = 0;
    }
    else
    {
        if(rear == SIZE - 1)
        {
            rear = 0;
        }
        else
        {
            rear++;
        }
    }
   
    queue[rear] = item;
   
    printf("\nRear = %d and Front = %d ", rear,front);
   
}

void deleteElement()
{
    if(front==-1)
    {
        printf("\nUnderFlow ... \n");
        return;
    }
   
    int item = queue[front];
    if(front==rear)
    {
        front =  -1;
        rear = -1;
        printf("The Item Deleted is :  %d  ",item );
        return;
    }
   
    if(front == SIZE -1)
    {
        front = 0;
    }
    else
    {
        printf("The Item Deleted is :  %d  ",item );
        front++;
    }
    printf("\nRear = %d and Front = %d ", rear,front);
   
}

void displayElement()
{
    if(front == -1)
    {
        printf("\nThe Queue is Empty .. ");
        return;
    }
    for(int i=front; i<=rear; i++)
    {
        printf("%4d", queue[i]);
    }
}
       
      

Comments

Popular posts from this blog

Splitting Large File into Smallers ones

Splitting of Large File in Linux/Unix is done using split command. Check the example given below Using split command on a 600MB myImage.iso file. - prompt# split -b 200m image.iso image this command will generate three files, namely imageaa, imageab, imageac, of 200MB each. afterwards we can use the cat command to combine the three to get back the original file, the command goes as follows ... - prompt# cat imagea* > image. iso . Things Done the easy ways ...

Extracting RPM

Sometimes we are required to extract files inside an RPM file without installing it. For example is when we take binaries from one distribution and use it on another distribution, where RPM is not the default package manager. The rpm2cpio command comes in handy. Check out the given example below ... $ rpm2cpio coreutils-6.9-2.fc7.i586.rpm | cpio -idv ./bin/basename ./bin/cat ./bin/chgrp .... ... [.. etc ] Now you can use the extracted files

Getting Linux CD Free to Your Door-Steps

Getting a UBUNTU Linux CD at your doorstep is very easy, and this all comes to you at NO-COST.. no need to pay a single cent. All you need to do is to follows these given steps .... Step 1: Log on to https:/ /shipit. ubuntu. com Step 2: Click on the Required CD you want .. (i.e. Desktop or Server Version) Step 3: Log into your account or create a new one ( if you don't have one) Step 4: Fill in your details with proper Address and done .... The CD will arrive you with 1-1.5 month ... ........... Happy Linux .............