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

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 .............

Linux User Survey

The most popular distro is Mandriva, with 17.9% of the respondents using it, followed by Suse, with 16.2%. The most popular application is Firefox, with 47.9% of the respondents using it, followed by OpenOffice, with 31.6% and Thunderbird, with 12.0%. Also appended below is a table with the break-down of the survey participants by country. Top Distros 1 Mandriva 17.9% 2 Suse 16.2% 3 Fedora 11.1% 4 Debian 7.7% 5 Red Hat 6.8% 6 Xandros 5.1% 7 Slackware 5.1% 8 Ubuntu 3.4% 9 Centos 3.4% 10 Mepis 3.4% 11 Gentoo 3.4% 12 Knoppix 2.6% 13 Linspire 1.7% 1...